Ce vor afișa următoarele declarații:
a. t:= ‘Munteanu’
s:=copy(t,1,5)
B. T:= ‘NumePrenume’
x:=delete(t,8,4)
Răspunsuri la întrebare
Răspuns:
a. Munte; b. aici avem eroare, vezi explicaţiile...
Explicație:
Nu e corect enunţul, deoarece afişarea se face numai prin procedurile write sau writeln, dar ele lipsesc în setul dat de instrucţiuni.
La punctul a, t este un şir de caractere, s primeşte ca valoare un subşir din t, ce începe cu poziţia 1 şi lungimea subşirului 5. Astfel s va primi valoarea Munte. Funcţia copy are ca rezultat un şir de caractere care aici devine valoare pentru s.
La punctul b. T este un şir de caractere. delete(T,poz,n) este o procedură care şterge din şirul de caractere T, n caractere, începând de la indicele poz. Un apel corect al procedurii delete ar fi următorul: delete(T,8,4);
Este incorectă apelarea procedurii delete în cadrul unei instrucţiuni de atribuire, cum este dat în enunţ, adică x:=delete(t,8,4). Acest apel va da eroare. Eu mai jos plasez cod pentru a confirma cele spuse:
var t, s, x:string;
begin
t:='Munteanu';
s:=copy(t,1,5);
writeln(s);
t:='NumePrenume';
delete(t,8,4);
writeln(t);
end.
Cu acest program se va afişa
Munte
NumePre