Informatică, întrebare adresată de 666problemss, 9 ani în urmă

Se considera programul: Program Ex1; var a:integer; b:real; procedure exer1(c:integer; var d:real); begin c:=c+10; d:=d-100; end; begin a:=1; b:=2; exer1(a,b); writeln(a, b:5:1); end. Ce va afisa programul ?

Răspunsuri la întrebare

Răspuns de lozanalex
1
Programul va afisa urmatoarele date

1  -98.0

666problemss: Poti te rog sa-mi explici cum ai ajuns la acest raspuns ? Te rog mult.
lozanalex: Cel mai simplu e sa scrii programul in Pascal si il dai la executie, insa metoda nu e chiar cinstita, metoda mai corecta e de a trece programul singur si a face calculele care le va face (profesoara mea numea acest procedeu a trasa programul, nu stiu daca e corect acest cuvant), si in final obtii rezultatul care trebuie.
lozanalex: In cazul dat e important de a atrage atentia la antetul procedurii, din 2 variabile formale (declarate in antetul procedurii) una e declarata cu cuvantul-cheie var iar alta nu, cea cu acest cuvant isi va intoarce valoarea din procedura in programul principal.
666problemss: Iti multumesc mult. Poti te rog sa ma ajuti si la celelalte intrebari din profilul meu ? Am nevoie mare.
lozanalex: In programul principal variabilele a si b obtin valorile 1 si 2 respectiv, dupa care e chemarea procedurii, in procedura a creste cu 10 si devine 11 , insa nu va intoarce valoarea in programul principal, iar b v-a deveni -98 si isi v-a intoarce valoarea in programul principal, si cand afisam a si b obtinem 1 si -98
lozanalex: Incerc
666problemss: Multumesc mult. Practic mi-ai salvat viata. Treci cu vederea si peste celelalte intrebari daca ai timp. Iti multumesc.
Alte întrebări interesante