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

Zadanie 1.3 "Język C++ Szkoła Programowania"

VPS Starter Arubacloud
0 głosów
1,788 wizyt
pytanie zadane 21 listopada 2017 w C i C++ przez Patryk Sokołowski Nowicjusz (150 p.)

Skończyłem właśnie rozdział 1 książki Język C++ Szkoła Programowania. Zacząłem rozwiązywać zadania sprawdzające na końcu. Przy zadaniu 3 posiedziałem dłuższą chwilę zastanawiając się jak to zrobić (co potem okazało się wielkim banałem jak już do tego doszedłem). Jaki jest mój problem? Napisałem ten program, wyświetla to co trzeba, ale chciałem zapytać czy kod, który napisałem jest w 100% poprawny. Mógłbym pójść dalej bo program działa, ale po prostu chciałbym to sprawdzić nawet jeśli jest ok :)

Treść zadania:
3.Napisz program w C++ wykorzystujący 3 funkcje (jedną z nich będzie main()), dający następujące wyniki:

Entliczek Pentliczek

Entliczek Pentliczek

Czerwony Stoliczek

Czerwony Stoliczek

Pierwsze dwa wiersze ma wygenerować pierwsza funkcja (wywoływana dwukrotnie), następne dwa druga funkcja także wywoływana dwukrotnie.

Mój kod:

//Program rozwiązujący zadanie nr 3.

#include <iostream>

using namespace std;

void simon(int); //prototyp funkcji 1
void basia(int); //prototyp funkcji 2

int main()
{
  simon(1); //Wywolanie funkcji simon
  simon(2); //Ponowne wywolanie funkcji simon
  basia(3); //Wywolanie funkcji basia
  basia(4); //Ponowne wywolanie funkcji basia
  return 0;
}
void simon(int) //Definicja funkcji simon
{
    cout << "Entliczek Pentliczek" << endl;

}
void basia(int) //Definicja funkcji basia
{
    cout << "Czerwony Stoliczek" << endl;
}

 

1 odpowiedź

+3 głosów
odpowiedź 22 listopada 2017 przez Jakub 0 Pasjonat (23,120 p.)
wybrane 22 listopada 2017 przez Patryk Sokołowski
 
Najlepsza
A po co dałeś tam parametry? Chodzi mi i ten typ int w nagłówku funkcji... Skoro funkcja z tego nie korzysta to nic nie przekazuj bo to bez sensu :) Ewentualnie daj tam void jak ci zależy
1
komentarz 22 listopada 2017 przez Patryk Sokołowski Nowicjusz (150 p.)
//Program rozwiązujący zadanie nr 3.

#include <iostream>

using namespace std;

void simon(void); //prototyp funkcji 1
void basia(void); //prototyp funkcji 2

int main()
{
  simon(); //Wywolanie funkcji simon
  simon(); //Ponowne wywolanie funkcji simon
  basia(); //Wywolanie funkcji basia
  basia(); //Ponowne wywolanie funkcji basia
  return 0;
}
void simon() //Definicja funkcji simon
{
    cout << "Entliczek Pentliczek" << endl;

}
void basia() //Definicja funkcji basia
{
    cout << "Czerwony Stoliczek" << endl;
}

Chodziło Ci o taką formę? :) Dzięki za odpowiedź. Jednak warto było zapytać.

komentarz 22 listopada 2017 przez Jakub 0 Pasjonat (23,120 p.)
Tak, teraz to ma sens :). Oczywiście jak nie chcesz dawać void w nawiasach to możesz tez zostawić puste miejsce
2
komentarz 22 listopada 2017 przez Piotr Batko Stary wyjadacz (13,190 p.)

Ja bym tego void-a nie wpisywał. Nie jest to błąd, ale jest to niepotrzebny kod, który niczego nie daje (nie poprawia czytelności, bezpieczeństwa).

Taka uwaga na poważnie, to dawaj funkcjom (i nie tylko funkcjom) dobre nazwy. Dobra nazwa to taka, która mówi, co robi funkcja :) Ja bym te funkcje nazwał:

  • wypiszEntliczekPentliczek
  • wypiszCzerwonyStoliczek

W tak maleńkim programie to nie ma żadnego znaczenia, bo jak nie wiem co robi "simon" to patrzę kilka linijek niżej i widzę definicję. To zacznie mieć znaczenie, gdy Twoje programy staną się większe i zacznie Cię męczyć czytanie kodu w stylu:

if (simon() == burek())
  edward();
else
  for (int janek = TADEUSZ; janek < gienek(); daria())
    ;

Pozdrawiam :)

1
komentarz 22 listopada 2017 przez Patryk Sokołowski Nowicjusz (150 p.)
Dzięki wielkie Piotr za odpowiedź i rady!

W przypadku tego programu tylko w ramach ćwiczeń nie przywiązywałem większej uwagi do nazewnictwa funkcji, ale teraz dzięki twojej radzie, podejdę do tego troszkę inaczej. Spróbuję ćwiczyć także dobre nazywanie funkcji jeśli ma to aż tak duży wpływ :) I faktycznie patrząc na kod, który mi przedstawiłeś ciężko by mi było potem w tym pracować. Jestem mega początkujący dlatego proste rzeczy wydają się dla mnie teraz ciężkie do zrozumienia i fajnie dostować takie rady bo będę wiedział, czego pilnować i nad czym pracować :)

Jeszcze raz dzięki!

Pozdrawiam!
1
komentarz 22 listopada 2017 przez Patryk Sokołowski Nowicjusz (150 p.)
Chciałbym jeszcze o coś zapytać bo myślę i myślę i nie wiem jak mam do tego podejść.

Zadanie 5, nie wiem jak napisać ten wzór, żeby wyliczył.

"Zamianę temperatury przeprowadź zgodnie ze wzorem:
Fahrenheit =  1,8 * stopnie Celsjusza + 32,0"
2
komentarz 22 listopada 2017 przez Jakub 0 Pasjonat (23,120 p.)

bardzo prosto, np:

double cel; //tu na przyklad znajduje sie temperatura w Celsjuszach, tam wczytujesz cin'em itd... itd
double t = 1.8*cel+32.0; //po prostu obliczasz i przypisujesz to do innej zmiennej (lub obliczasz besposrednio w cout czy w instrukcji return )
cout<<t<<endl; //jak wyświetlac zmienne to raczej wiesz :)

cel - to temperatura w Celsjuszach

t - to jakaś przekonwertowana już na Fahrenheit'a

W językach programowania obliczasz prawie tak samo jak na kartce

 

komentarz 22 listopada 2017 przez Patryk Sokołowski Nowicjusz (150 p.)
Dzięki za pomoc! Kurde, a tyle nad tym siedziałem! Nie wiem może już przez zmęczenie mój mózg się wyłączył :) Przewertowałem cały dział pierwszy, robiłem z 20 możliwości i nic, a próbowałem nawet wypisywać te działanie tak po prostu jak napisałeś. Byłem pewien, że trzeba pewnie użyć "double", ponieważ są liczby po przecinku, ale coś nie mogłem tego wszystkiego złączyć w całość :) Chciałem dojść do tego samemu, nie iść na łatwiznę i pytać na forum, ale już po prostu nie mogłem.

Gdyby były liczby całkowite wystarczyłoby użyć int cel i int t prawda?

Dobrze jest kogoś zapytać, książki się niestety nie da :)

Dzięki!

Pozdrawiam!

Podobne pytania

0 głosów
1 odpowiedź 351 wizyt

92,452 zapytań

141,262 odpowiedzi

319,083 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...