Miért az az eredménye ennek a 3 C++ programkódnak, ami? Az ASCI táblázatot értem, csak azt nem értem, hogyan és miért futnak úgy le a ciklusok?
Szia! Holnapután vizsgázom, lenne még egy-két feladat, amit nem igazán értek! Ha van egy kis felesleges időd, tudnál nekem segíteni? Mind egy kaptafára mennek, és addig megvan, h itt az ASCI kódokat kell figyelembe venni. A logikáját nem értem, elveszek a ciklusokban. Nem nyaggatlak, ha nem érsz rá, hát nem! Előre is köszönöm.
Üdv. hotigeftas
1.
int main(){
int i=0, j=1, k=6;
while(i*i<k)
printf("%c",'a'+i++);
for(j=1; j<i*i/3; j++){
printf("%c",'A'+j);
k++;
}
i*=-2;
printf("\n"); system("PAUSE"); return 0;
}
/*Megoldókulcsok: abcBC*/
2.int main(){
int i=5, j=5, a=1;
for(i=3; i>a; i--)
printf("%c",'a'+i);
j=i;
do{
printf("%c",'A'+j);
j-=2; i++; a++;
}while(j>=0);
printf("\n"); return 0;
}
/*Megoldókulcsok: dcB*/
3.
int main(){
int i = -2, j=1;
while(i<2){
j=i;
do{
printf("%c", 'C'+j);
if(j<0) j++;
else j--;
}while(j);
i++;
};
printf("\n"); return 0;
}
/*Megoldókulcsok: ABBCBD*/
Kösz a tippet! Megpróbálom.
A feladatokat nem én szültem.. Ezek minta példák egy vizsgához.
Az 1.-ben ez így végtelen ciklus:
for(j=1; j<i*i/3; j++){
printf("%c",'A'+j);
k++;
}
A j-t kéne növelni. Valószínűleg elírtad csak.
Ha a j-t növel, akkor jó az eredmény.
Ezeknél a feladatoknál egyrészt a ciklusokat kell jól ismerni. Másrészt azt kell ismerni, hogy a C++ hogyan számol a karakterekkel és számokkal vegyesen.
Röviden ez utóbbi úgy történik, hogy a számot "átváltja" az ASCII kódjára (valójában bitek szintjén eddig is az volt). Azzal és a másik számmal (int) elvégzi az összeadást. Végül az eredményt visszaváltja karakterré az ASCII tábla segítségével (itt szintén nem történik a valóságban kb. semmi). Azt most kapásból nem tudom, mi történik, ha 255-nél nagyobb lesz az eredmény (ugye legfeljebb ennyi fér 1 bájtba, azaz a char típusba). Szerintem ebben az esetben túlcsordul az eredmény, de ki lehet próbálni...
A harmadik dolog, ami kell(het) az maga az ASCII kódtábla. Én őszintén megmondom, hogy sosem jegyeztem meg pl. a 'a' vagy a 'A' ASCII kódját (leginkább lustaságból). De azt tudom jól, hogy az angol ábécé betűi egymásután benne vannak a-tól z-ig.
Ezért tudom, hogy:
'a' + 0 = 'a'
'a' + 1 = 'b'
'a' + 2 = 'c'
...
Illetve:
'A' + 0 = 'A'
'A' + 1 = 'B'
...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!