• 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"

Object Storage Arubacloud
0 głosów
1,815 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ź 370 wizyt

92,568 zapytań

141,422 odpowiedzi

319,641 komentarzy

61,957 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...