Дадени са два масива от низове – единият съдържа думи на даден език, а другият – техния превод на друг език. Да се напише програма, която при въвеждане на дума на който и да е от двата езика извежда:
- от кой език е тази дума
- превода и на другия език
- подходящо съобщение, ако думата е непозната
Предполагаме, че думите от двата езика не съвпадат и че всяка дума има само едно значение. По желание може да се реализира ако думата е непозната, програмата да предлага допълване на речника с новата дума и значението и.


VAR a:array[1..5] of string=('kuche','kotka','masa','telefon','voda'); b:array[1..5] of string=('dog','cat','table','phone','water'); a1:array[1..5] of string=('jivotno','jivotno','predmet','predmet','technost'); b1:array[1..5] of string=('animal','animal','subject','subject','fluid'); i,n:integer; duma:string; BEGIN write('Vavedi duma: '); readln(duma); for i:=1 to 5 do begin if duma=a[i] then begin writeln('Bulgarski->Angliiski'); writeln(a[i],'->',b[i]); write('1 - za poyasnenie na dumata, 2 - za da prodaljite: '); readln(n); if n=1 then writeln(b1[i]); end else if duma=b[i] then begin writeln('Angliiski->Bulgarski'); writeln(b[i],'->',a[i]); write('1 - za poyasnenie na dumata, 2 - za da prodaljite: '); readln(n); if n=1 then writeln(a1[i]); end; end; readln; END.Супер, добавил си и екстри :-) Но не си реализирал напълно условието – няма да извежда текст ако думата е непозната…
Ето това е програмата с проверка ако думата е непозната(ако я няма в речника). В началото не разбрах точно какво означава „…подходящо съобщение, ако думата е непозната“, мислех си, че означава да извежда пояснение на думата и го направих с пояснения и след това разбрах какво трябва да направя и поправих програмата :)
VAR a:array[1..5] of string=('kuche','kotka','masa','telefon','voda'); b:array[1..5] of string=('dog','cat','table','phone','water'); a1:array[1..5] of string=('jivotno','jivotno','predmet','predmet','technost'); b1:array[1..5] of string=('animal','animal','subject','subject','fluid'); i,n:integer; x:boolean; duma:string; BEGIN write('Vavedi duma: '); readln(duma); for i:=1 to 5 do begin if duma=a[i] then begin writeln('Bulgarski->Angliiski'); writeln(a[i],'->',b[i]); write('1 - za poyasnenie na dumata, 2 - za da prodaljite: '); readln(n); if n=1 then writeln(b1[i]); x:=true; end else if duma=b[i] then begin writeln('Angliiski->Bulgarski'); writeln(b[i],'->',a[i]); write('1 - za poyasnenie na dumata, 2 - za da prodaljite: '); readln(n); if n=1 then writeln(a1[i]); x:=true; end end; if x=false then writeln('Dumata e nepoznata'); readln; END.Сега вече е завършена. Това X, което си ползвал се нарича флаг, и по принцип се ползва така:
var namerena: Boolean; begin ... Namerena:= False; // цикъл в който проверяваме // условна команда за проверка - ако сме я открили, тогава: Namerena:= True; // край на цикъла if not Namerena then ... // нещо си