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

Program losujący liczby do wektora i wykonujący działania w oparciu o nie.

Ostatnio zmodyfikowano 2013-01-05 21:04
Autor Wiadomość
gekron
Temat założony przez niniejszego użytkownika
Program losujący liczby do wektora i wykonujący działania w oparciu o nie.
» 2013-01-05 17:38:06
Witam,
Przy okazji pozdrawiam forumowiczów, jako że to mój pierwszy post tutaj.

Mam kilka problemów z moim przykładowym programem w oparciu o ćwiczenie... oto one:

Program na starcie pobiera od użytkownika rozmiar wektora.
Następnie deklaruje i wypełnia wektor losowymi liczbami.
Po wyczyszczeniu ekranu wyświetla menu:
Dla podanego zbioru liczbowego:
1. Wylicz średnią
2. Podaj ilość elementów
3. Podaj sumę elementów
4. Podaj maksimum i minimum
5. Wydrukuj elementy (indeksowane)
6. Zakończ program

1 - Nie jestem pewien jak wykonać czyszczenie, aby następnie w oparciu o dane z tablicy pokazać menu wyboru bez pokazanych o góry liczb losowych i ich komunikatów.
2 - W przypadku wskazania liczb max i min pokazuje mi dziwne wartości(niezgodne z wylosowanymi liczbami w oparciu o które chce znaleźć min i max). Chciałbym by były one z wybranego zakresu liczbowego (0-200).
3 - Nie jestem pewny co lub jak wykonać z poleceniem 5. Wydrukuj elementy (indeksowane).

A to poniższy program - w razie czego proszę o uwagi co jeszcze zrobić i poprawić w nim:

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

using namespace std;

int main()
{
    srand( time( NULL ) );
    int wektor[ 5 ];
    int licznik = 0;
    int wybor;
    do
    {
        wektor[ licznik ] =( rand() % 200 ) + 0; // Okreslony przedzial liczb losowanych
        licznik = licznik + 1;
    } while( licznik < 5 );
   
    cout << "Wylosowano liczby: ";
    licznik = 0;
    do
    {
        cout << wektor[ licznik ] << ", ";
        licznik = licznik + 1;
    } while( licznik < 5 );
   
    do
    {
        cout << "\nWybierz dzialanie do wykonania:\n1: Srednia\n2: Ilosc elementow\n3: Suma elementow\n4: Podaj maksimum i minimum\n5: Wydrukuj elementy indeksowane\n6: Zakoncz program"
        << endl;
        cout << "\nDzialanie";
        cin >> wybor;
        {
            if( wybor > 0 )
                 cout << "Wykonywanie dzialania\n" << endl;
            else
                 cout << "Powtorz" << endl;
           
        }
        switch( wybor )
        {
        case 1:
            {
                int suma = 0;
                int srednia = 0;
                for( int i = 0; i < 5; i = i + 1 )
                     suma = suma + wektor[ i ];
               
                srednia = suma / 5;
                cout << "Srednia:\n" << srednia << endl;
            }
            break;
        case 2:
            {
                int ilosc = 0;
                ilosc = 5;
                cout << "Ilosc elementow:\n" << ilosc << endl;
            }
            break;
        case 3:
            {
                int suma = 0;
                for( int i = 0; i < 5; i = i + 1 )
                     suma = suma + wektor[ i ];
               
                cout << "Suma:\n" << suma << endl;
            }
            break;
        case 4:
            int max, min, wektor[ 5 ];
            max = wektor[ 0 ];
            min = wektor[ 0 ];
            for( int i = 1; i < 5; i = i + 1 )
            {
                if( wektor[ i ] > max )
                     max = wektor[ i ];
               
                if( wektor[ i ] < min )
                     min = wektor[ i ];
               
            }
            cout << "Min: " << min << endl;
            cout << "Max: " << max << endl;
            break;
        case 5:
            cout << "Wydrukuj elementy (indeksowane)=" << endl;
            break;
        case 6:
            return 0;
        default:
            cout << "\nBlad, wybierz akcje z zakresu 1 - 6!";
            break;
        }
    } while( wybor > 0 );
   
    return 0;
}
P-73046
kubawal
» 2013-01-05 17:40:39
skorzystaj ze std::vector

kod daj w [cpp]...[/cpp]
P-73048
gekron
Temat założony przez niniejszego użytkownika
» 2013-01-05 17:51:03
Niestety nie jestem pewien jak skorzystać z std::vector. I czy stosować to tylko w case4: czy dla wszystkich wektorów?
P-73050
pekfos
» 2013-01-05 20:13:02
Program na starcie pobiera od użytkownika rozmiar wektora.
skorzystaj ze std::vector
Po co? Wystarczy zaalokować tablicę.
P-73084
gekron
Temat założony przez niniejszego użytkownika
» 2013-01-05 20:22:49
Cóż trochę zagadnienie nie jeszcze zbyt oczywiste, bo dopiero raczkuję w temacie, więc chętnie bym zobaczył przykład lub fragment kodu poprawiający wynik z max i min. Pomoc co do reszty pytań z mojego wątku również mile widziana.
P-73086
pekfos
» 2013-01-05 20:32:34
1. Dodaj wszystkie elementy i podziel przez n
2. n
3. Dodaj wszystkie elementy
4. Zrób 2 zmienne pomocnicze min i max i w pętli sprawdzaj czy kolejna wartość w tablicy jest mniejsza/większa od min/max. Aktualizuj min i max.

Te wymagania są banalne. Wystarczy chwilkę pomyśleć.
P-73090
gekron
Temat założony przez niniejszego użytkownika
» 2013-01-05 20:40:21
Co do 1,2,3 oraz częściowo 4 to wykonałem już to w programie, który przesłałem. Tyle, że w programie(po case 4:) max i min nie są zgodne z wylosowanymi liczbami. Chętnie bym zobaczył jak rozwiązać ten problem, najlepiej z przykładem.
P-73091
pekfos
» 2013-01-05 20:42:42
usuń
wektor[ 5 ]
 z linii 70.
P-73092
« 1 » 2
  Strona 1 z 2 Następna strona