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

[Lekcja 18] Czy da się pododawać wszystkie wypisane liczby programie za pomocą pętli do... while?

Ostatnio zmodyfikowano 2016-06-26 10:28
Autor Wiadomość
_barto567_
Temat założony przez niniejszego użytkownika
[Lekcja 18] Czy da się pododawać wszystkie wypisane liczby programie za pomocą pętli do... while?
» 2016-06-25 17:21:29
Jak (jeśli w ogóle) da się pododawać wszystkie liczby w pętli do... while w zadaniu: 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. ?
Czy po prostu pododawać te wszystkie liczby ( czyli 999 ) pisząc normalnie: nazwa_tablicy[ 1 ] + nazwa_tablicy[ 2 ] + zmienna[ 3 ]
+ nazwa_tablicy[ 4 ]... + nazwa_tablicy[ 996 ] + nazwa_tablicy[ 997 ] + nazwa_tablicy[ 998 ] + nazwa_tablicy[ 999 ]...
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    srand( time( NULL ) );
    int liczby[ 999 ];
    int licznik = 0;
    do
    {
        liczby[ licznik ] =( rand() % 6 ) + 4;
        licznik++;
    } while( licznik < 999 );
    std::cout << "Wylosowane są nastepujace liczby: ";
    licznik = 0;
    do
    {
        std::cout << liczby[ licznik ] << ", ";
        licznik++;
    }while( licznik < 999 );
    return 0;
}

Z góry dziękuję za pomoc :) !
P.S

Jakby się nie dało to moglibyście to napisać, że się nie da?
P-149450
carlosmay
» 2016-06-25 18:57:14
Jakby się nie dało to moglibyście to napisać, że się nie da?
Da się :) (i to na kilka sposobów).

Rozbij program na funkcje:
- pierwsza niech losuje i zwraca liczbę z zadanego przedziału,
- druga niech wypełni przekazaną tablicę za pomocą pętli,
- trzecia niech wypisze wszystkie wartości z tablicy,
- czwarta niech zsumuje i zwróci wynik wszystkie wartości za pomocą pętli,
- wynik wypisz w main().

C/C++
#include <array>
#include <iostream>
#include <random>

constexpr int SIZE = 999;
std::random_device rd;
std::mt19937 generator( rd() );

int getRandomedNumber( int begin, int end )
{
    std::uniform_int_distribution < int > distance( begin, end );
    return distance( generator );
}

void fillArray( std::array < int, SIZE >& arr, int begin, int end )
{
    for( int i = 0; i < arr.size(); ++i ) {
        arr[ i ] = getRandomedNumber( begin, end );
    }
}

void printArray( std::array < int, SIZE >& arr )
{
    for( int i = 0; i < arr.size(); ++i ) {
        std::cout << arr[ i ] << '\n';
    }
}

int comptArray( std::array < int, SIZE >& arr )
{
    int sum = 0;
    for( int i = 0; i < arr.size(); ++i ) {
        sum += arr[ i ];
    }
   
    return sum;
}

int main()
{
    int begin = 4;
    int end = 10;
   
    std::array < int, SIZE > arr { };
   
    fillArray( arr, begin, end );
    printArray( arr );
    std::cout << "Suma wszystkich elementów tablicy wynosi: " << comptArray( arr ) << '\n';
}


@edit: funkcja sumująca z użyciem
do { } while;
C/C++
int comptArray( std::array < int, SIZE >& arr )
{
    int sum = 0;
   
    std::size_t i = 0;
    do {
        sum += arr[ i++ ];
    } while( i < arr.size() );
   
    return sum;
}
P-149451
_barto567_
Temat założony przez niniejszego użytkownika
Dzięki ale...
» 2016-06-26 10:28:20
Widać że się postarałeś mi odpowiedzieć  tylko ja jeszcze nie miałem tematu z tablicami i funkcją i ogólnie nie chce robić czegoś w sposób który jeszcze nie znam ale mimo wszystko dzięki.

P.S

Wiem że to dziwne, ale ja takk mam :)
Aczkolwiek jeśli bym chciał do tego zadania wrócić kiedy bym już się na tym znał to by to wykorzystał.
P-149460
« 1 »
  Strona 1 z 1