Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Trzy pytania osoby początkującej

Ostatnio zmodyfikowano 2008-06-09 22:21
Autor Wiadomość
siemes
Temat założony przez niniejszego użytkownika
Trzy pytania osoby początkującej
» 2008-06-07 19:04:08
1) kiedy pisze się na końcu "endl" a kiedy się nie pisze, bo mi wszystko działa i bez tego, czy jest jakaś różnica
2) jaka jest różnica między biblioteką <iostream> a <iostream.h> (osobiście używam tej drugiej).
3) dostałem zadanie o takiej treści : Napisz program wczytujący dla podanej liczby n ciąg liczb długości n oraz znajdujący równocześnie min. i max element tego ciągu (w sensie że po jednym przejściu tablicy ma znajdować min. i max.)
Napisałem następujący program (oczywiście pododawałem biblioteki).

C/C++
int i, N, max = 0, min = 1001;
cout << "Podaj dlugosc ciagu.\n";
cin >> N;
int * ciag = new int[ N ];
srand( time( NULL ) );
for( i = 0; i < N; i++ )
{
    ciag[ i ] = rand() %( 1000 );
    cout << ciag[ i ] << endl;
}
for( i = 0; i < N; i++ )
if( ciag[ i ] < min )
{
    min = ciag[ i ];
   
}
else if( ciag[ i ] > max )
{
    max = ciag[ i ];
}
cout << "maksymalna z powyzszych liczb to " << max << endl;
cout << "minimalna z powyzszych liczb to " << min << endl;
I mam pytanie czy ten program spełnia kryterium znalezienia min. i max przy jednym przejściu? bo nie znam się za bardzo i nie wiem czy przegląda tą tablicę raz czy 2 razy. Z góry dziękuję za pomoc
P-823
DejaVu
» 2008-06-07 19:58:47
endl -> przenosi kursor w konsoli na początek nowego wiersza

C/C++
for( i = 0; i < N; i++ )
if( ciag[ i ] < min )
{
    min = ciag[ i ];
   
}
else if( ciag[ i ] > max )
{
    max = ciag[ i ];
}
Jedno przejście = jedno wykonanie pętli for dla całej tablicy danych => czyli masz dobrze :)
P-825
siemes
Temat założony przez niniejszego użytkownika
zamienianie systemów
» 2008-06-08 11:44:59
mam napisany kod żeby program zamieniał mi system dziesiątkowy na dowolny system od dwójkowego do 16stkowego
 
C/C++
char rozwin[ 11 ];
int n, s, p = 0;
char cyfra[] = "0123456789ABCDEF";
cout << "Podaj liczbe: \n ";
cin >> n;
cout << "W jakim systemie (od 2 - dwojkowego do 16-snastkowego) ma byc podana liczba zapisana: \n";
cin >> s;
while( n != 0 )
{
    rozwin[ p ] = n % s;
    n = n / s;
    p++;
}
cout << "Wynik zapisany cyframi w systemie" << s << ": \n";
for( int i = p; i > 0; i-- )
     cout << cyfra[ rozwin[ i - 1 ] ];

, chciałbym jedynie wiedzieć po co w tym kodzie (co oznacza) pierwsza linijka char rozwin[11] bo mam ten program spisany, co nam to definiuje?
P-833
DejaVu
» 2008-06-08 12:08:04
char rozwin[11]; to utworzenie tablicy znaków. Tablica ta posiada 11 znaków. Dokładniejszy opis znajdziesz tutaj: http://ddt.pl/kursy/?LessonId=11
P-835
siemes
Temat założony przez niniejszego użytkownika
» 2008-06-08 14:18:49
bardziej chodziło mi do czego te 11 się tyczy ?, ale doszedł poważniejszy problem
jak obliczyć wartość symbolu Newtona, bo mam 2 programy i żaden nie działa (nawet te z neta), wpisuję wartości i po wpisaniu wartości kończy mi program (bibliotek mam na zapas ;) )
C/C++
#include<iostream.h>
#include<math.h>
#include <conio.h>
#include<stdlib.h>
#include<ctime>
using namespace std;
int newton( int, int );

int main()
{
    int k, d;
   
    cout << " Podaj k : ";
    cin >> k;
    cout << "Podaj d : ";
    cin >> d;
    cout << " (k po d)= " << newton( k, d ) << endl;
   
    return 0;
   
}

int newton( int k, int d )
{
    if( k == d || d == 0 )
         return 1;
    else
         return newton( k - 1, d - 1 ) + newton( k - 1, d );
   
    getch();
    return( 0 );
}
----------------------------------------
z kolei drugi
C/C++
#include<iostream.h>
#include<math.h>
#include <conio.h>
#include<stdlib.h>
#include<ctime>
using namespace std;
int newton( int n, int k )
{
    if( n == k || k == 0 )
    {
        return 1;
    }
    else
    {
        return newton( n - 1, k - 1 ) + newton( n - 1, k );
    }
}
int main()
{
    int n, k;
    cout << "podaj n oraz k.\n";
    cin >> n >> k;
    cout << "(n po k) = " << newton( n, k ) << endl;
    getch();
    return( 0 );
}
i żaden nie wylicza mi wartości, gdzie jest błąd?
P-836
DejaVu
Symbol Newtona
» 2008-06-08 14:40:46
Twoja funkcja nie jest zabezpieczona przed niepoprawnymi danymi i w efekcie pętliła się w nieskończoność. Funkcja powinna wyglądać np. tak:
C/C++
int newton( int n, int k )
{
    if( k > n ) return( - 1 ); //Nieprawidłowe dane
   
    if( n == k || k == 0 )
    {
        return 1;
    }
    else
    {
        return newton( n - 1, k - 1 ) + newton( n - 1, k );
    }
}
P-840
siemes
Temat założony przez niniejszego użytkownika
» 2008-06-08 15:33:16
Mam zadanie : Napisać program wczytujący 2 liczby jako ciąg znaków a następnie dodający je pisemnie. Jak to zwalczyć?
P-841
DejaVu
» 2008-06-08 23:29:25
Wczytaj do dwóch zmiennych typu std::string tekst (liczby), a następnie do nowej zmiennej (też typu std::string), wykonaj dodawanie pisemne dla dwóch wczytanych liczb. Dodawanie pisemne wykonuj od końca cyfra po cyfrze.
P-842
« 1 » 2
  Strona 1 z 2 Następna strona