Алгоритмічні мови і програмування(Рівень 1)
1. Вкажіть неправильний запис числа мовою Паскаль: а) 0006 б) 7,0 в) 8Е0
2. Вкажіть неправильний запис числа мовою Паскаль: а) 2/3 6)3.8 в)0
3. Вкажіть неправильний запис числа мовою Паскаль: а) 5 б)Е-1 в) 3.2
4. Вкажіть неправильний запис числа мовою Паскаль: а) 89.0 б) 0040 в) 2*Е5
5. Вкажіть, скільки операцій виконується при обчисленні виразу мови Паскаль (х+1/2)*(у+7/10)-3/4:
а) 8 6)6 в) 7 г) 10 д)4
6. Вкажіть помилковий запис мовою Паскаль:
а) 1+4 б) 1.5+3 в) (х>5) and (х<7) г) 1 and 0
7. Вкажіть помилковий запис мовою Паскаль: а) true+false б) а or (not b) в) 2.5+8Е1 г) х<у
8. Вкажіть помилковий запис мовою Паскаль: а) 5> 10 б) true<0 в) х<>0 г) а or (not a)
9. Вкажіть помилковий запис мовою Паскаль: а) false<true б) 1.5*3 в) not 2=5 г) 1<0
10. Вкажіть помилковий запис мовою Паскаль: а) 1>4 б) 1.5<3 в) х<7.8 г) х>0 or у=4
11. Вкажіть помилковий запис мовою Паскаль: а) not not b or or d 6) true and false в) (x>5) or false г) not true
12. Вкажіть помилковий запис мовою Паскаль: а) not true 6) true and and false в) (x<7.8) and true г) (x>10) or (y=3)
13. Вкажіть неправильний ідентифікатор мови Паскаль: а) х б) А в) Міv Value г) Мax Value
14. Вкажіть неправильний ідентифікатор мови Паскаль: а) number б)NUMBER в) DAY г) 7DAYS
15. Вкажіть неправильний ідентифікатор мови Паскаль: а) РАSСАL б) ідентифікатор в) num г) РоsInt
16. Вкажіть неправильний ідентифікатор мови Паскаль: а)аbсd б)Раscаl в)А+1 г)Арlus1
Алгоритмічні мови і програмування(Рівень 2)
1. Структура програми на алгоритмічній мові Паскаль.
program name; {імя програми}
unit Crt; {підключення модудів}
var x: integer; {опис змінниx}
begin {початок програми}
end. {кінець програми}
2. Оператор циклу з передумовою мови Паскаль: призначення, синтаксис, приклад застосування.
Оператор цикла с постусловием (repeat)
В операторе цикла с постусловием (начинающимся со слова repeat) выражение, которое управляет повторным выполнением последовательности операторов содержится внутри оператора repeat.

Результат выражения должен быть булевского типа. Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значение True. Последовательность операторов выполнится по крайней мере один раз, поскольку вычисление выражения производится после каждого выполнения последовательности операторов.
Приведем примеры оператора цикла с постусловием:
Var n: integer;
h: real;
begin
read (n)
write (n)
h:=0;
repeat
h:=h+1/n
n:=n-1
until n=0;
writeln (h)
end.
3. Оператор циклу з післяумовою мови Паскаль: призначення, синтаксис, приклад застосування.
Операторы цикла с предусловием (while)
Оператор цикла с предусловием (начинающийся с ключевого слова while) содержит в себе выражение, которое управляет повторным выполнением оператора (который может быть составным оператором).


Выражение, с помощью которого осуществляется управление повторением оператора, должно иметь булевский тип. Вычисление его производится до того, как внутренний оператор будет выполнен. Внутренний оператор выполнятся повторно до тех пор, пока выражение принимает значение Тruе. Если выражение с самого начала принимает значение False, то оператор, содержащийся внутри оператора цикла с предусловием, не выполняетса.
Примерами операторов цикла с предусловием могут служить следующие операторы:
Var n: integer;
h: real;
begin
read (n)
write (n)
h:=0;
while n>0 do
begin
h:=h+1/n
n:=n-1
end
writeln (h)
end.
4. Оператор циклу з параметром мови Паскаль: призначення, синтаксис, приклад застосування.
Операторы цикла с параметром (for)
Операторы цикла с параметром (которые начинаются со слова for) вызывает повторяющееся выполнение оператора (который может быть составным оператором) пока управляющей переменной присваивается возрастающая последовательность значений.
оператор
for
В качестве управляющей переменной должен использоваться идентификатор переменой (без какого-либо квалификатора), который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. Управляющая переменная должна иметь перечислимый тип. Начальное и конечное значения должны иметь тип, совместимый по присваиванию с перечислимым типом.
Когда начинает выполняться оператор for, начальное и конечное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for.
Оператор, который содержится в теле оператора for, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением. Управляющая переменная всегда инициализируется начальным значением. Когда работает оператор for, значение управляющей переменной (счетчика циклов) увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле оператора for оператор не выполнятся. Когда в операторе цикла используется ключевое слово downto, значение управляющей переменной уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполнятся.
Если оператор, содержащийся в теле оператора for, изменяет значение управляющей переменной, то это является ошибкой. После выполнения оператора for значение управляющей переменной становится неопределенным, если только выполнение оператора for не было прервано с помощью оператора перехода.
Если принять во внимание эти ограничения, то оператор
for V := Expr1 to Expr2 do Body;
эквивалентен оператору:
begin
Temp1 := Expr1;
Temp2 := Expr2;
if Temp1 <= Temp2 then
begin
V := Temp1;
Body;
while V <> Temp2 do
begin
V := Succ(V);
Body;
end;
end;
end;
и оператор цикла:
for V := Expr1 downto Exp2 do Body;
эквивалентен операторам:
begin
Temp1 := Expr1;
Temp2 := Expr2;
if Temp1 >= Temp2 then
begin
V := Temp1;
Body;
while V <> Temp2 o
begin
V := Pred(V);
Body;
end;
end;
end;
где Temp1 и Temp2 - вспомогательные переменные, тип которых совпадает с основным типом переменной V и которые не встречаются в другом месте программы.
Приведем примеры оператора цикла с параметром:
for I := 2 to 63 do
if Data[I] > Max then Max := Data[I]
for I := 1 to 10 do
for J := 1 to 10 do
begin
X := 0;
for K := 1 to 10 do
X := X + Mat1[I,K]*Mat2[K,J];
Mat[I,J] := X;
end;
for C := red to blue do Check(C);
5. Умовний оператор мови Паскаль: призначення, синтаксис, приклад застосування.
Условные операторы
Условные операторы позволяют выбрать для выполнения один из составных операторов (или не выбрать ни одного).
----------------¬
условный оператор --T-->¦ оператор if +------->
¦ L---------------- ^
¦ ----------------¬ ¦
L-->¦ оператор case +----
L----------------Оператор условия (if)
Синтаксис оператора if можно представить следующим образом:
---¬ ----------¬ -----¬ ---------¬
оператор if ->¦if+-->¦выражение+-->¦then+-->¦оператор+--T--¬
L--- L---------- L----- L--------- ¦ ¦
-------------------------- ¦
¦ -----¬ ---------¬ v
L-->¦else+-->¦оператор+--------->
L----- L---------
В выражении должен получаться результат, имеющий стандартный булевский тип. Если результатом выражения является истинное значение (True), то выполняется оператор, следующий за ключевым словом then.
Если результатом выражения является значение False и присутствует ключевое слово else, то выполнятся оператор, следующий за ключевым словом else. Если ключевое слово else отсутствует, то никакой оператор не выполняется.
Синтаксическая неоднозначность, возникающая в конструкции:
if e1 then e2 else e3
разрешается путем следующей интерпретации этой конструкции:
if e1 then
begin
if e2 then
s1
else
s2
end
Примечание: В предшествующем операторе else двоеточие не указывается.
В общем случае ключевое слово else связывается с ближайшим ключевым словом if, которое еще не связано с ключевым словом
else.
Приведем два примера оператора if:
if X < 1.5 then
Z := X+Y
else
Z := 1.5;
if P1 <> nil then
P1 := P1^.father;
6. Оператор вибору мови Паскаль: призначення, синтаксис, приклад застосування.
Оператор варианта (case)
Оператор варианта (casе) состоит из выражения (переключателя) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Переключатель (селектор) должен иметь порядковый тип (размером в байт или слово). Таким образом, строковый тип и длинный целый тип являются недопустимыми типами переключателя. Все константы выбора должны быть уникальными и иметь порядковый тип, совместимый с типом переключателя.
Оператор варианта case приводит к выполнению оператора, которому предшествует константа выбора, равная значению переключателя или диапазону выбора, в котором находится значение переключателя. Если такой константы выбора или такого диапазона выбора не существует и присутствует ветвь else, то выполнятся оператор, следующий за ключевым словом else. Если же ветвь else отсутствует, то никакой оператор не выполняется.
Приведем некоторые примеры оператора варианта:
Var c1,c2:char;
Case c of
“a”,”b”,”c”:c1:suc(c1)
“k”…”r”:c2:pred(c2)
End.
7. Процедури мови Паскаль: призначення, синтаксис опису процедури, приклад.
Приклад:
Procedure WrStr(x,y:integer); {створення процедури з параметрами}
var x2, y2:integer; {створення внутрішніх змінних}
begin {початок процедури}
x2:=5;
y2:=5;
if (x>10) and (y>10) then gotoxy(x,y) else gotoxy(x2,y2);
end; {кінець процедури}
Процедура - це частина програми, яка виконує спеціальну дію, яка базується переважно з використанням параметрів.Процедура може бути як з параметрами, так і без них. Виклик процедури: WrStr(1,2); тут в якості параметрів вказані числа цілого типу. Опис процедури не може міститись в тілі програми, наприклад:
program name;
unit Crt;
var x: integer;
begin
Procedure WrStr(x,y:integer);
var x2, y2:integer;
begin
x2:=5;
y2:=5;
if (x>10) and (y>10) then gotoxy(x,y) else gotoxy(x2,y2);
end;
end.
Правильний варіант розміщення процедури:
program name;
unit Crt;
var x: integer;
Procedure WrStr(x,y:integer);
var x2, y2:integer;
begin
x2:=5;
y2:=5;
if (x>10) and (y>10) then gotoxy(x,y) else gotoxy(x2,y2);
end;
begin
WrStr(1,2);
end.
8. Функції мови Паскаль: призначення, синтаксис опису функції, приклад.
Приклад:
function asd(i:integer): integer; {створення функції з параметром, та надання типу поверненого результату}
var x:integer; {опис внутрішніх змінних}
begin {початок функції}
x:=10;
if (i<10) then i:=i+x;
asd:=i; {повернення значення}
end; {кінець функції}
Функція-це частина програми, яка виконує і повертає значення. Функція може бути як з параметрами, так і без них, але oбовязково функція має мати тип поверненого результату. Виклик функції і отримання поверненого рехультату:a:=asd(2); {a-змінна цілого типу, набуває значення поверненого результату фінкції} опис процедури не може міститись в тілі програми, наприклад:
program name;
+unit Crt;
var x: integer;
begin
function asd(i:integer): integer;
var x:integer;
begin
x:=10;
if (i<10) then i:=i+x;
asd:=i;
end;
end.
Правильний варіант розміщення процедури:
program name;
unit Crt;
var x: integer;
function asd(i:integer): integer;
var x:integer;
begin
x:=10;
if (i<10) then i:=i+x;
asd:=i;
end;
begin
end.
Алгоритмічні мови і програмування(Рівень 3)
1 Написати програму на мові Сі для визначення суми значень елементів над головною діагоналлю матриці А={аij}, де і=j=15 Ввід елементів матриці здійснити з клавіатури.
2 Написати програму на мові Сі для визначення добутку значень елементів під головною діагоналлю матриці А={аij}, де і=j=12 Ввід елементів матриці здійснити з клавіатури.
3. Написати програму на мові Сі для визначення максимальною елемента над допоміжною діагоналлю матриці А={аij}, де i=j=25 Ввід елементів матриці здійснити з клавіатури.
4. Написати програму на мові Сі для визначення мінімальною елемента під допоміжною діагоналлю матриці А={аij}, де і=j=23 Ввід елементів матриці здійснити з клавіатури.
5. Написати програму на мові Сі для визначення добутку значень елементів над допоміжною діагоналлю матриці А={аij}, де і=j=47 Ввід елементів матриці здійснити з клавіатури.
6. Написати програму на мові Сі для визначення суми значень елементів під допоміжною діагоналлю матриці А={аij}, де і=j=28 Ввід елементів матриці здійснити з клавіатури.