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

To jest totalna bzdura ?

Object Storage Arubacloud
+1 głos
734 wizyt
pytanie zadane 7 grudnia 2015 w C i C++ przez Munvik Dyskutant (9,350 p.)

Witam.

Przeglądając Google i szukając jakiś zadań C++ z nudów wlazłem na taką strone i pewne zadanie... Patrze i nie wierze. 

******************

Zadanie 13. Sprawdzanie czy wprowadzony znak jest dużą literą, małą literą lub cyfrą

Napisz program, który po wprowadzeniu przez użytkownika znaku określi czy jest to mała litera, duża litera lub liczba

wynik powinien zostać wyświetlony na ekranie

#include <iostream>
#include <string.h>
#include <conio.h>
int main()
{
using namespace std;
char a;
cout << "Podaj znak do sprawdzenia ";
cin >> a;
if (a > 47 and a < 58) cout << "\nJest to cyfra";
if (a > 96 and a < 123) cout << "\nJest to mala litera";
if (a > 64 and a < 91) cout << "\nJest to duza litera";
return 0;
}

 

Przecież to jest totalny bzdurny kod, dlaczego to jest na takim blogu ?

 

5 odpowiedzi

+3 głosów
odpowiedź 7 grudnia 2015 przez Radfler VIP (101,030 p.)

Ten kod jest prawidłowy. Co według Ciebie jest nie tak?

#PS and to słowo kluczowe oznaczające koniunkcję (&&).

#PS2 typ char jest typem całkowitym, więc można go porównywać z intami.

komentarz 7 grudnia 2015 przez Radfler VIP (101,030 p.)
Typ char jest jednobajtowym typem całkowitym (liczba całkowita), co oznacza że przechowuje sobie nie znak, a liczbę odpowiadającą danemu znakowi w tabeli ASCII.
komentarz 7 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Ah a int to 4-bajtowa liczba całkowita ale nie odpowiadająca danemu znakowi w tabeli ASCII tak ?
komentarz 7 grudnia 2015 przez draghan VIP (106,230 p.)

Najbardziej poprawnie byłoby zapisać tak:

#include <iostream>
#include <string.h>
#include <conio.h>
int main()
{
using namespace std;
char a;
cout << "Podaj znak do sprawdzenia ";
cin >> a;
if ((int)a > 47 and (int)a < 58) cout << "\nJest to cyfra";
if ((int)a > 96 and (int)a < 123) cout << "\nJest to mala litera";
if ((int)a > 64 and (int)a < 91) cout << "\nJest to duza litera";
return 0;
}

Rzutowanie w stylu C nie jest najbardziej poprawnym rozwiązaniem. :P Do tego celu służy w C++ operator static_cast.

komentarz 7 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Ok ja ide spać... Ktoś mi odpisze do czego służy ten zapis po cout <<     ->   "\n   <-

Nie używałem tego pisząc proste programy :D
komentarz 8 grudnia 2015 przez draghan VIP (106,230 p.)

To jest jedna z tzw. sekwencji ucieczek (ang. escape sequence). Są to specjalne sekwencje znaków, które nie służą do bezpośredniego wydruku na ekranie, a mają najczęściej za zadanie przekazać jakieś informacje sterujące. W C++ wszystkie rozpoczynają się znakiem '\'.

Sekwencja "\n" oznacza przełamanie linii, czyli jest (powiedzmy) odpowiednikiem std::endl*.


* - std::endl, poza tym że przełamuje wiersz, wykonuje również opróżnienie bufora, więc nie można powiedzieć, że "\n" i std::endl to są ekwiwalenty, chociaż w sporej większości programów nie odczujesz różnicy.

+1 głos
odpowiedź 7 grudnia 2015 przez Porcupine Nałogowiec (31,560 p.)

Program porównuje kody ASCII odpowiadejące odpowiednim znakom, tu masz tabelkę: 

Pozdrawiam,

0 głosów
odpowiedź 7 grudnia 2015 przez radek024 Szeryf (77,160 p.)

To jest tablica ASCII. Autor skorzystał z niej, używając zmiennej typu char. Podał wartość w systemie dziesiętnym, która odpowiada danym z tabeli. Wszystko jest dobrze :)

komentarz 7 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Tablica była mi wcześniej obca, dzięki.
0 głosów
odpowiedź 7 grudnia 2015 przez mrcnsct Nałogowiec (36,390 p.)
0 głosów
odpowiedź 7 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)
a nie mogłeś go sobie uruchomić na swoim komputerze sprawdzić wyniki i dopiero później ewentualnie go omówić?
komentarz 7 grudnia 2015 przez Munvik Dyskutant (9,350 p.)
Nie uważasz, że lepiej jest omówić jak czegos się nie rozumie i od razu o to zapytać, żeby wiedzieć bo to, że zadziałała nie wyjaśni mi dlaczego działa.
komentarz 7 grudnia 2015 przez niezalogowany
A nie sądzisz, że próba zrozumienia danego problemu i poszukania rozwiązania nauczy cie więcej niż uzyskanie gotowej odpowiedzi?
komentarz 8 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)
Dlatego ja najpierw bym uruchomił to u siebie na komputerze sprawdził czy działa jeżeli tak to bym się spytał "co autor miał na myśli".

Zobaczszy w swojej późniejszej pracy nawet jak będziesz wracał do własnego kodu i będziesz się dziwił "co za debil to pisał?" , " ja takie głupoty napisałem?" chodzi mi o to że nie zawsze widać na pierwszy rzut oka co autor miał na myśli.

Nie zrozum mnie źle ale poprostu czasami lepiej jest wystrugać kiepską wędke niż od kogoś 2kg ryb wziąć.

Podobne pytania

0 głosów
0 odpowiedzi 128 wizyt
0 głosów
1 odpowiedź 219 wizyt
pytanie zadane 30 grudnia 2018 w C i C++ przez m4rcingsxr Początkujący (360 p.)
0 głosów
1 odpowiedź 1,374 wizyt
pytanie zadane 11 grudnia 2018 w C i C++ przez m4rcingsxr Początkujący (360 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...