Programovanie c++

Programovacie jazyky, rady, poradňa...
Andrejka66
Amateur
Amateur
Príspevky: 13
Registrovaný: 15 jan 2009, 20:47

Programovanie c++

Príspevok od používateľa Andrejka66 »

Zdravim neviem si dat s tymto rady. Som absolutna zaciatocnicka. Poradi mi niekto? Zadanie:

Napíšte program. Nájdite priemernú, minimálnu a maximálnu teplotu v mesiaci. Zadajte počet dní v mesiaci (max. 31). Z klávesnice načítajte teploty v zvolenom počte dní do poľa, ktoré potom prehľadávajte. Pri minimálnej a maximálnej teplote uvádzajte aj číslo dňa, v ktorom to bolo.

Samozrejme treba komunikovať s používateľom (vypýtať si vstupné dáta, a celou vetou oznamovať výsledky. Súčasťou zadania bude aj slovný opis algoritmu zapísaný vo forme komentára na začiatku zdrojového kódu.
Zappir
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 498
Registrovaný: 17 aug 2008, 9:38
Bydlisko: Praha / Prievidza

Príspevok od používateľa Zappir »

Nazdar, treba spravit neco taketo:

-vytvoris premennu na pocet dni,uzivatel donej zada pocet (cin<<), das tam podmienku ktora porovna vstupne cislo z 31kou, ak bude vyssie vyzve uzivatela aby zadal nizsiu hodnotu
-vytvoris pole o velkosti tej premmenej v ktorej je zadany pocet dni
-vytvoris cyklus ktory nacita tie teploti do pola
-cyklus ktory pojednom porovna teploty ulozene v poli ,ako prvu das napriklad porovnat z teplotou -100 , ta teplota s ktorou ju porovnavas ( v nasom pripade -100) bude zapisana v premennej. Ak je porovnavana teplota vissia ta -100ka sa prepise. Nakonci cyklu tam budes mat najvissiu teplotu
-spavis to iste co pri cykle na zistenie najvissej akurat ze das miesto -100 nake velke cislo, napr 100 a budes zistovat ci je teplota nizsia.
-nakoniec spravis cyklus na scitanie vsetkych hodnot v poli do jednej premmenej a toto cislo videlis poctom dni v mesiaci ktore si nacitaval nazaciatku.

Dufam ze som ti aspom trosku pomohol
Andrejka66
Amateur
Amateur
Príspevky: 13
Registrovaný: 15 jan 2009, 20:47

Príspevok od používateľa Andrejka66 »

Dakujem za radu, ale stale sa mi moc nedari... :?
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Hm, tak tu to mas, tento program som uz robil nedavno... Dobre si to pozri

Kód: Vybrať všetko

/*
 * Vytvorime si pole 31 prvkov, co je maximalny mozny pocet dni v mesiaci.
 * Od uzivatela vypytame pocet dni(premenna poc_dni) a nacitame teplotu v kazdom dni
 * Ukladame si index dna, ktory mal najmensiu/najvacsiu teplotu (premenne max_i a min_i)
 * Najprv su inicializovane nulami, teda oznacime prvy den za den s najvacsou aj najmensou teplotou
 * Potom pri nacitavani porovname prave nacitanu hodnotu s najmensou, ak je mensia, oznacim novu za najmensiu
 * Ak je vacsia ako najvacsia, oznacime ju za najvacsiu
 * Do premennej sucet si ukladame sucet vsetkych teplot, z ktoreho potom vypocitame priemernu teplotu (priemer = sucet/poc_dni) 
 * Na zaver uz vypiseme vsetky hodnoty a dni(indexy), v ktorych nastala najmensia/najvacsia teplota
 */

#include <cstdio>
#include <iostream>

using std::cin;
using std::cout;
using std::endl;

const char MAX_POCET_DNI = 31;

int main(void)
{
    char max_i = 0, min_i = 0, i;
    int poc_dni;
    float teploty[MAX_POCET_DNI], sucet = 0;

    cout << "Zadajte pocet dni: ";
    cin >> poc_dni;

    if (!poc_dni) {
        cin.get(); cin.get();
        return 0;
    }

    for (i = 0; i < poc_dni; i++) {
        cout << "Zadajte teplotu v " << i+1 << ". dni: ";
        cin >> teploty[i];
        if (teploty[i] < teploty[min_i])
            min_i = i;
        if (teploty[i] > teploty[max_i])
            max_i = i;
        sucet += teploty[i];
    }

    cout << "Priemerna teplota: " << sucet/poc_dni << endl;
    cout << "Najvyssia teplota: " << teploty[max_i] << " v " << max_i+1 << ". dni\n";
    cout << "Najmensia teplota: " << teploty[min_i] << " v " << min_i+1 << ". dni\n";

    cin.get(); cin.get();

    return 0;
}
Andrejka66
Amateur
Amateur
Príspevky: 13
Registrovaný: 15 jan 2009, 20:47

Príspevok od používateľa Andrejka66 »

Jeeej dakujem si zlaty. fakt diki moc.
Napísať odpoveď