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

Lekcja 18 Sprawdzenie Zadania

Ostatnio zmodyfikowano 2013-02-28 01:20
Autor Wiadomość
piotrek353
Temat założony przez niniejszego użytkownika
Lekcja 18 Sprawdzenie Zadania
» 2012-12-28 12:56:46
Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

int main()
{
    int liczba[ 999 ];
    int licznik = 0;
   
    srand( time( NULL ) );
    do
    {
        liczba[ licznik ] =( rand() % 7 ) + 4;
        licznik++;
    } while( licznik < 999 );
   
    std::cout << "liczby wylosowane to: " << std::endl;
    licznik = 0;
    do
    {
        std::cout << liczba[ licznik ] << ", ";
        licznik++;
    } while( licznik < 999 );
   
    std::cout << "\n\nsuma wszystkich liczb wylosowanych wynosi: " << std::endl;
   
    int wynik = 0;
    int a = 0;
    int klicznik = 0;
   
    do
    {
        wynik = wynik + liczba[ a++ ];
        klicznik++;
       
    } while( klicznik < 998 );
   
    std::cout << wynik << std::endl;
   
    return 0;
}
Czy dobrze wykonałem zadanie domowe?
P-72169
Mike148
» 2012-12-28 14:26:39
Na pierwszy rzut oka wygląda, że dobrze. Zmień tylko 998 na 999 w ostatniej pętli.
P-72176
CrisOf7
» 2013-01-17 00:57:04
Nie rozumiem dlaczego zdeklarowales a? Przecież ona nic nie wnosi. Tak samo mogles napisac zamiast a++ dać klicznik.
Jezeli się myle to niech ktoś poprawi :)
C/C++
int wynik = 0;
int klicznik = 0;
do
{
    wynik = wynik + liczba[ klicznik ];
    klicznik++;
} while( klicznik < 999 );

std::cout << wynik << std::endl;
return 0;
P-74169
crash
» 2013-01-28 03:47:01
Już w pętli wyświetlającej elementy powinieneś obliczać sumę:

C/C++
do
{
    std::cout << liczba[ licznik ] << ", ";
   
    wynik += liczba[ licznik ];
   
    licznik++;
   
} while( licznik < 999 );


Mniej pisania. Co prawda mały projekt ale trza wiedzieć, że nie należy robić dodatkowych pętli jeśli w jednej można zrobić wszystko:

C/C++
do
{
    liczba[ licznik ] = rand() % 7 + 4;
    wynik += liczba[ licznik ];
    std::cout << liczba[ licznik ] << ", ";
    licznik++;
   
} while( licznik < 999 );


PS; osobiście użyłbym pętli for zamiast do..while, ale to tylko moja subiektywna ocena
P-75193
Maniek
» 2013-01-28 09:23:16
W tym zadaniu celowo została użyta pętla do...while, ponieważ pętla for będzie opisywana dopiero w bodajże 22 rodziale.
P-75203
Dominisia
» 2013-02-27 15:53:52
Czyli mogę tak zrobić tak wszystko w jednej pętli?

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    int liczba[ 9 ];
    int licznik;
    int wynik;
    srand( time( NULL ) );
    //liczba[licznik]=((rand()%7) +4);
    wynik = 0;
    licznik = 0;
    do
    {
       
        liczba[ licznik ] =(( rand() % 7 ) + 4 );
        cout << liczba[ licznik ] << endl;
        wynik = wynik + liczba[ licznik ];
        licznik = licznik + 1;
        //cout<< "wynik:" <<wynik<<endl;
    }
    while( licznik < 10 );
   
    cout << "wynik:" << wynik << endl;
    system( "pause" );
    return 0;
}
P-77214
Monika90
» 2013-02-27 16:39:40
@Dominisia
wychodzisz poza zakres tablicy, poza tym jeżeli chcesz zrobić wszystko w jednej pętli, to w ogóle tablicy nie potrzebujesz, można sumować liczby na bieżąco.

@Maniek
Sposób w jaki ten kurs traktuje pętle jest nieco dziwny. Pętla do-while jest rzadko używana i trudna w analizie. Kurs powinien zacząć od pętli while i for (petla for to prosta postać pętli while).
P-77222
usmiech
» 2013-02-28 01:20:36
<< removed >>
P-77286
« 1 »
  Strona 1 z 1