Exercicis Programació C++ III (2011)

Ejercicio Catalán
Universidad Universidad Politécnica de Cataluña (UPC)
Grado Ingeniería Electrónica Industrial y Automática - 1º curso
Asignatura Fonaments Informàtica
Año del apunte 2011
Páginas 5
Fecha de subida 12/11/2014
Descargas 2
Subido por

Descripción

Exercicis pas a pas de programació en C++

Vista previa del texto

Expressions 1. La divisió entera Obre un nou fitxer "div.cpp" i entra-hi el següent programa: Ara executa el programa mirant el resultat que dóna per a les següents parelles de valors: 10 5 10 3 2 5 Què hauries de fer perquè el resultat donés amb decimals?? Posar “double” o “char” en camptes de “int” 2. Una funció senzilla Implementa un programa (func.cpp) que calculi la funció: és a dir, que et demani el valor de x i mostri el valor de la funció per pantalla.
3. Codi ASCII Fes un programa (ascii1.cpp) que et demani un caràcter i després escrigui el seu codi ASCII per pantalla. Comprova que si poses 'a' surti 97, si poses 'A' surti 65 i si poses '0' surti 48.
4. Majúscules Fes un programa (majusc.cpp) que et demani un caràcter i mostri per pantalla el mateix caràcter en majúscules. Mira primer, quina relació hi ha entre els caràcters en minúscules i majúscules perquè aquest programa fa un càlcul més o menys senzill. Per fer-ho pots suposar que el caràcter que et donen és una lletra minúscula. Fes unes quantes proves.
Què passa si li entres al programa una lletra que no sigui minúscula? Pots explicar-ho? El programa dona un resultat absurd 5. Expressions Booleanes Les expressions que tenen com a tipus resultant un Booleà són molt importants en programació perquè, com veurem més endavant, permeten controlar quines instruccions del programa s'executaran. Obre un fitxer nou de programa anomenat "interv.cpp" i entra el següent programa: I executa'l vàries vegades posant els valors: -20, -1.7, 5.5, 15.2, 21.3, i 100. Què surt per pantalla en cada cas? Vist això, què creus que surt per pantalla si en C++ escrius la següent instrucció? cout << true << false << true << endl; Passarà el mateix, ja que es tracta d’una doble negació, i una doble negació sempre dona igual a una afirmación.
6. Comparació a tres bandes Quan programem, a vegades podem cometre errors que no són gens evidents. Per exemple, quin error veus en el programa següent? Salva'l com "entremig.cpp": Primer de tot: què et sembla que fa? Dóna errors de compilació? Em sembla que el programa serveix per indicar quan els valors de y estan entremig dels valors de les altres variables. No dona errors de compilació Si suposem que el programa escriu 1 quan el valor de y està comprès entre el de x i el de z, i escriu 0 si no és així, et sembla que el programa funciona bé? Fes unes quantes proves per veure què pot passar...
Substitueix, ara, la línia "entremig = x < y < z" per "entremig = x < y && y < z".
Mira si ara el programa funciona bé. Pots explicar, doncs, quin és l'error que hi havia en el programa? (pels atrevits: podries dir quins valors de x, y i z donaven 0 i 1 en el programa erroni??) Els valors parells donaven 1 i els impars donaven 0. L’error que havia en l’anteior programa era que només reconeixia x com a valor més gran que tots els anteriors, en comptes de dir que valor es trobava al mig 7. De Morgan Quan neguem una expressió com a < 'Y' apliquem la negació a tota l'expressió posant parèntesis a fora, així !(a < 'Y') però la negació també es pot aplicar a l'operador de dintre.
Si l'expressió inicial vol dir "a és menor que 'Y'", llavors la negació seria "a és major o igual que'Y'", o sigui a >= 'Y' Fixa't, doncs, en l'expressió següent (suposant que c és un char), que permet mirar si la variable c és una vocal c == 'a' && c == 'e' && c == 'i' && c == 'o' && c == 'u' Així, mentalment, què et sembla, funciona correctament? Fes un programa que la utilitzi per comprovar-ho i corregeix l'expressió cas que es confirmés que està malament.
Ara, converteix l'expressió amb el teorema de De Morgan, i comprova que funciona correctament tornant a provar el programa.
Sabent això, com traduiries la següent expressió (si suposem que a és un int)? !(a < 10 || a > 20) 8. Encerta la combinació Entra el programa següent (xngu.cpp): Sota quines condicions el programa escriu '1'?? Escriu la solució com un comentari al codi del programa per entregar-la.
Fes totes les proves necessàries i modifica l'expressió si ho necessites per entendre cada part per separat.
...