• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Programowanie, język C++ problem z pętlą

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
1,025 wizyt
pytanie zadane 29 kwietnia 2020 w C i C++ przez agasava123 Nowicjusz (190 p.)

Witam, potrzebuję pomocy w zadaniu z programowania w języku C++. Mianowicie chodzi o to że nie wiem jak do działającego kodu dodać pętlę w taki sposób aby zadziałał on w taki sam sposób jak działa teraz. Pomocy!

#include <iostream>

using namespace std;

int main ()

{

   float temp1,temp2,temp3,temp4,temp5,temp6,temp7;

   cout<<"Podaj odczytana temperature w Poniedzialek:\n";
   cin>>temp1;

   cout<<"Podaj odczytana temperature w Wtorek:\n";
   cin>>temp2;

   cout<<"Podaj odczytana temperature w Srode:\n";
   cin>>temp3;

   cout<<"Podaj odczytana temperature w Czwartek:\n";
   cin>>temp4;

   cout<<"Podaj odczytana temperature w Piatek:\n";
   cin>>temp5;

   cout<<"Podaj odczytana temperature w Sobote:\n";
   cin>>temp6;

   cout<<"Podaj odczytana temperature w Niedziele:\n";
   cin>>temp7;

   float srednia;

   srednia=(temp1+temp2+temp3+temp4+temp5+temp6+temp7)/7;

   cout<<"Srednia tygodnia temperatur: \n"<<srednia<<" C\n";

   if(temp1 < temp2 && temp1<temp3 && temp1<temp4 && temp1<temp5 && temp1<temp6 && temp1<temp7)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp1<<" C\n";

   }

       if(temp2 < temp1 && temp2<temp3 && temp2<temp4 && temp2<temp5 && temp2<temp6 && temp2<temp7)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp2<<" C\n";

   }

       if(temp3 < temp1 && temp3<temp2 && temp3<temp4 && temp3<temp5 && temp3<temp6 && temp3<temp7)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp3<<" C\n";

   }

       if(temp4 < temp2 && temp4<temp3 && temp4<temp1 && temp4<temp5 && temp4<temp6 && temp4<temp7)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp4<<" C\n";

   }

       if(temp5 < temp2 && temp5<temp3 && temp5<temp4 && temp5<temp1 && temp5<temp6 && temp5<temp7)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp5<<" C\n";

   }

       if(temp6 < temp2 && temp6<temp3 && temp6<temp4 && temp6<temp5 && temp6<temp1 && temp6<temp7)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp6<<" C\n";

   }

       if(temp7 < temp2 && temp7<temp3 && temp7<temp4 && temp7<temp5 && temp7<temp6 && temp7<temp1)

   {

       cout<<"Najnizsza temperatura to: \n"<<temp7<<" C\n";

   }

           if(temp7 > temp2 && temp7>temp3 && temp7>temp4 && temp7>temp5 && temp7>temp6 && temp7>temp1)

   {

       cout<<"Najwyzsza temperatura to: \n"<<temp7<<" C\n";

   }

           if(temp6 > temp2 && temp6>temp3 && temp6>temp4 && temp6>temp5 && temp6>temp1 && temp6>temp7)

           {

       cout<<"Najwyzsza temperatura to: \n"<<temp6<<" C\n";

           }

           if(temp5 > temp2 && temp5>temp3 && temp5>temp4 && temp5>temp1 && temp5>temp6 && temp5>temp7)

           {

       cout<<"Najwyzsza temperatura to: \n"<<temp5<<" C\n";

           }

       if(temp1 > temp2 && temp1>temp3 && temp1>temp4 && temp1>temp5 && temp1>temp6 && temp1>temp7)

   {

       cout<<"Najwyzsza temperatura to: \n"<<temp1<<" C\n";

   }

       if(temp2 > temp1 && temp2>temp3 && temp2>temp4 && temp2>temp5 && temp2>temp6 && temp2>temp7)

   {

       cout<<"Najwyzsza temperatura to: \n"<<temp2<<" C\n";

   }

       if(temp3 > temp1 && temp3>temp2 && temp3>temp4 && temp3>temp5 && temp3>temp6 && temp3>temp7)

   {

       cout<<"Najwyzsza temperatura to: \n"<<temp3<<" C\n";

   }

       if(temp4 > temp2 && temp4>temp3 && temp4>temp1 && temp4>temp5 && temp4>temp6 && temp4>temp7)

   {

       cout<<"Najwyzsza temperatura to: \n"<<temp4<<" C\n";

   }

   return 0;

}

 

2 odpowiedzi

0 głosów
odpowiedź 29 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)


1.

for (int i = 0; i < ilosc_zmiennych; i++) {
    tab [i] = tutaj_to_co_chcesz_przypisac;

}

przy czym ilosc zmiennych, to ilosc przechowywanych elemntow w tablicy

2. takze pela, ustawiasz 1 element tablicy jako temperatura min i pozniej idiesz przez cala reszte tablicy i sprawdzasz czy jest jakas nizsza, jesli tak to ustawiasz ja jako minimalna

 

komentarz 29 kwietnia 2020 przez agasava123 Nowicjusz (190 p.)
a w którym miejscu powinnam ją wstawić?
komentarz 29 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)
ale co wstawic? petle? odrazu mozesz ja dac i czytanie ze strumienia wstawic wewnatrz. Po czytaniu dodac kolejna petle, ktora bedzie szukac najmniejszej temperatury. Slowa przewodnie to: tablice/vector, petla for/while.
0 głosów
odpowiedź 30 kwietnia 2020 przez veron_v Obywatel (1,360 p.)

Hej. Nie wiem czy Ci się jeszcze to przyda ale tak zerknąłem na Twój kod i sobie pomyślałem, jak Ty tam się odnalazłeś/aś hehe :) Sam jestem nowicjuszem i też się dopiero co uczę. Bardzo uważnie słucham tego co mówi Pan Zelent. Jedną z takich mądrości jest "sexowny kod" :D Pewnie też już przestudiowałeś/aś Pana Mirosława filmy i jego kurs to pewnie wiesz o czym mówię. Idąc za radą jakie Pan Mirek udziela i z resztą nie tylko on bo każdy dobry koder to mówi że przejrzystość kodu to podstawa. W związku z tym opracowałem Ci troszkę inaczej napisany kod spełniający dokładnie te same funkcje co Twój kodzik. Jeśli masz życzenie to skorzystaj z niego sobie a jeśli nie to też nic nie szkodzi :) Na jednej z Lekcji Pan Mirek doradza by czasami zerknąć sobie na kod innych właśnie na forum i starać się coś poprawić, ulepszyć, czy dodać od siebie. Włożyć kawałek siebie. W ten sposób ćwiczymy naszą umiejętność kodowania :) Pomagając innym, pomagamy sobie :) Więc wklejam specjalnie dla Ciebie to co stworzyłem :)) Może skorzystasz. Pozdrawiam serdecznie i miłej nocy życzę. 


#include <iostream>
 
using namespace std;
float temp1,temp2,temp3,temp4,temp5,temp6,temp7, m, srednia;
float najwyzsza_temp();
float najnizsza_temp();
float fun_srednia();

int main ()
{
system("cls");
    cout<<"Podaj odczytana temperature w Poniedzialek:\n";
   cin>>temp1;
    cout<<"Podaj odczytana temperature w Wtorek:\n";
   cin>>temp2;
    cout<<"Podaj odczytana temperature w Srode:\n";
   cin>>temp3;
    cout<<"Podaj odczytana temperature w Czwartek:\n";
   cin>>temp4;
    cout<<"Podaj odczytana temperature w Piatek:\n";
   cin>>temp5;
    cout<<"Podaj odczytana temperature w Sobote:\n";
   cin>>temp6;
    cout<<"Podaj odczytana temperature w Niedziele:\n";
   cin>>temp7;
system ("cls");

    najwyzsza_temp();
    {
        cout<<"Najwyzsza temperatura to: \n"<<m<< " C " << endl << endl;
    }
    najnizsza_temp();
    {
        cout<<"Najnizsza temperatura to: \n"<<m<< " C " << endl << endl;
    }
    fun_srednia();
    {
       cout<<"Srednia tygodnia temperatur: \n"<<srednia<< " C " << endl;
    }
return 0; 
}

float najwyzsza_temp()
{
m=temp1;
if(temp2>m) m=temp2;
if(temp3>m) m=temp3;
if(temp4>m) m=temp4;
if(temp5>m) m=temp5;
if(temp6>m) m=temp6;
if(temp7>m) m=temp7;
return m;
}

float najnizsza_temp()
{
m=temp1;
if(temp2<m) m=temp2;
if(temp3<m) m=temp3;
if(temp4<m) m=temp4;
if(temp5<m) m=temp5;
if(temp6<m) m=temp6;
if(temp7<m) m=temp7;
return m;
}

float fun_srednia()
{
srednia=(temp1+temp2+temp3+temp4+temp5+temp6+temp7)/7;
}

 

komentarz 30 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)
Nie chce Cie obrazic w zaden sposob, ale to co tutaj pokazalas to herezja. Zaczynajac od nadmiaru zmiennych, komczac na funkcjach globalnych. Filmy Pana Zelenta, nie nauczyly Cie dobrych podstaw.
komentarz 30 kwietnia 2020 przez veron_v Obywatel (1,360 p.)
Jestem samoukiem. Uczę się od trzech tygodni c++. I czy mnie obraziłeś? W zasadzie to nie. Bardziej twórce i kreatora tego forum na co z pewnością nie zasługuje. Jestem świadom tego że jeszcze baaaardzo długa droga przede mną. A poprawiając kod założyciela tego wątku chciałem co jedynie pomóc w/w osobie.
Pozwól że na zakończenie rzucę taką dygresją.

Polak polakowi bratem, i zawsze z pomocną dłonią co nie? ;) (ironia)

Pozdrawiam.
komentarz 30 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)

Alez ja mu napisalem, co ma zrobic dodajac odpiwedz do tego tematu. Nie zglosil sie, ze ma dalsze prolemy, wiec skad mam wiedziec, czy sobie poradzil, czy nie. Dawanie gotowych rozwiazan, to nie pomoc... Wrecz przeciwnie, to przeszkadza w procesie nauki.

Nie obrazilem Tworcy, stwierdzilem, ze praktyki jakie pokazywal w filmach sa po prostu zle i przestarzale mozna tak to ujac. Nie jest to moje zdanie, ale wielu innych osob na tym forum, wiec jest to tylko i wylacznie konstruktywna krytyka, o ktorej Pan Miroslaw rowniez wie. Nie mowie, ze sa to mega zle filmy, bo pod wzgledem merytrycznym, ciezko znalezc lepsze, bo bardzo dobrze wysjania pojecia. A to, ze osobiscie sam jestes samoukiem nic do tego nie ma, bo wiekszosc osob jest samoukami, jezeli chodzi o programowanie i sam tez zaczynalem od jego filmikow.

#include <iostream>
#include <vector>
int main()
{
    std::vector <double> temp;
    size_t numberOfTemp = 9;
    int input;
    for (int i = 0; i < numberOfTemp; i ++ ) {
        std::cin >> input;
        temp.push_back(input);
    }
    double average = 0;
    for (auto j : temp) {
        average += j;
    }
    average /= 2;
    double lowestTemp = temp[0];
    for (auto k : temp) {
        if (lowestTemp > k) {
            lowestTemp = k;
        } else {

        }
    }
    double highestTemp = temp[0];
    for (auto k : temp) {
        if (highestTemp < k) {
            highestTemp = k;
        } else {

        }
    }
    std::cout << "Srednia: " << average << ", najnizsza: " << lowestTemp << ", " << "najwyzsza: " << highestTemp;
}

btw, tutaj przykladowy kod, ktory jeszcze nie jest idealny, ale pisany byl w 2 min. I duzo da sie zmienic, dodac funkcje, zmienic pewnie szukanie w samym vectorze na lepsze.

#include <iostream>
#include <bits/stdc++.h>
#include <vector>
int main()
{
    std::vector <double> temp;
    size_t numberOfTemp = 9;
    int input;
    for (int i = 0; i < numberOfTemp; i ++ ) {
        std::cin >> input;
        temp.push_back(input);
    }
    double average = 0;
    for (auto j : temp) {
        average += j;
    }
    average /= 2;
    double lowestTemp = *std::min_element(temp.begin(), temp.end());
    double highestTemp = *std::max_element(temp.begin(), temp.end());
    std::cout << "Srednia: " << average << ", najnizsza: " << lowestTemp << ", " << "najwyzsza: " << highestTemp;
}

jak np to, gdzie uzywam juz gotowej funkcji min i max, ktora szuka elemntow w vectorze. Mozna tez dolaczyc libke algorithm i uzyc funkcji ktora nazywa sie "min" i "max". Ale zakladam, ze auto pewnie sam chcialby przecwiczyc petle. Wiec zamiast tego auto mozna zrobic to tak:


for (int i = 0; i < temp.size() - 1; i ++) {
    average += temp[i];
}

i tak samo z kazdym innym zapisalem zamiast auto. Bo odwlanie jest takie same jak do tablic

komentarz 30 kwietnia 2020 przez veron_v Obywatel (1,360 p.)
Ja o vectorach jeszcze nic nie wiem. Jak dla mnie to na tą chwilę czarna magia. Tak jak napisałem wyżej. Jeszcze dłuuuuga droga przede mną. I podkreślę po raz kolejny szanowny Panie. Uczę się sam. Po 2h po nocach w domu. Sam szukam rozwiązań i w dalszym ciągu raczkuję i będę jeszcze długo raczkował. Zamieszczony przeze mnie kod był formą pomocy a i jednocześnie treningiem.
Za to odnoszę wrażenie iż Pan, Panie Dragon za wszelką cenę chce ukazać swoją wyższość. Nie ładnie. Miłego dnia.
komentarz 30 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)
1. Tylko nie Pan, to jest forum i forma grzecznosciowa jest tu zbedna jak dla mnie i nie jestem jakis stary

2. Wiem, ze nie miales vectorew, bo P. Zelent ich nie pokazywal u siebie i tez ich nie zobaczysz. Dlatego polecam spojrzec po prostu w dokumentacje jezyka i jak chcesz cos napisac, to zamiast ogladac filmy P. Zelenta mozesz szukac w google, to co Cie interesuje, pewnie na stacku jakas odpowiedz juz sie pojawila.

3. Nie mowie, ze nie byl forma pomocy, tylko mowie, ze Twoj kod, nie rozni sie az tak bardzo od tego kodu wyzej, tutaj lepiej uzyles if'ow od autora i uzyles funkcji, wiec kod wyglada schludniej od tego, co napisal sam autor.
komentarz 30 kwietnia 2020 przez veron_v Obywatel (1,360 p.)
To też miałem na celu. By móc się rozczytać. I też napisałem że podziwiam autora za to że potrafił się tam odnaleźć. Po za tym sam widzisz. Dzięki temu powstała moja wersja kodu i Twoja wersja kodu co ukazuje kolejną fascynującą rzecz. Że niemal nie ma ograniczeń i to kolejna dobra lekcja jak i dla mnie tak też i dla autora tego wątku.

Podobne pytania

0 głosów
1 odpowiedź 411 wizyt
pytanie zadane 24 lipca 2021 w C i C++ przez Bartusio445 Początkujący (290 p.)
0 głosów
2 odpowiedzi 402 wizyt
pytanie zadane 9 stycznia 2019 w C i C++ przez elwkitn91 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 602 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez niezalogowany

93,433 zapytań

142,428 odpowiedzi

322,661 komentarzy

62,796 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...