
Итоговая контрольная работа
КОНТРОЛЬНЫЕ РАБОТЫ ПО ДИСЦИПЛИНЕ
«Основы алгоритмизации и программирования»
Составитель: к.т.н., доцент каф. СИ ВСГУТУ Евдокимова И.С.
Вариант 1
Задание №1. Перечислить через запятую, в возрастающем порядке, элементы которые входят в множество А после выполнения следующей последовательности операторов.
Var A,B,C:set of 1..100;
Begin
A:=[];
B:=A+[1..10];
C:=[3..12];
A:=B*C-[3,5,7,9];
End.
Задание №2. В результате выполнения фрагмента программы на экран должны быть выведены числа, полученные умножением переменной х на числа от 1 до 10. Выберите правильный фрагмент.
Begin Read(x); For I:=1 to 10 do begin x:=x*i; writeln(x); end; End.
|
Begin Read(x); For I:=1 to 10 do y:=x*i; Writeln(y); End.
|
Begin Read(x); For I:=1 to 10 do Writeln(x*I); End.
|
Begin Read(x); For I:=1 to 10 do Writeln(‘x*I’); End.
|
Задание №3. Какое значение переменной А будет выведено на экран оператором writeln(A) в результате выполнения следующей программы?
Var A, n:integer;
Begin
n:=527; A:=2;
while n mod A<>0 do A:=A+1;
writeln(A);
end.
Задание №4. Требуется определить и вывести на экран число элементов массива меньших своих левых соседей, вывести эти элементы на экран. Массив заполняется случайными числами. Определите правильный вариант программы.
а) Var a:array[1..10] of integer; m, i:integer; Begin for i:=1 to 10 do a[i]:=random(100); for i:=1 to 9 do if a[i]>a[i+1] then begin write(a[i+1],’ ‘); m:=m+1; end; writeln(m); end.
|
b) Var a:array[1..10] of integer; m, i:integer; Begin for i:=1 to 10 do a[i]:=random(100); for i:=1 to 9 do if a[i]>a[i+1] then begin write(a[i],’ ‘); m:=m+1; end; writeln(m); end.
|
c) Var a:array[1..10] of integer; m, i:integer; Begin for i:=1 to 10 do a[i]:=random(100); for i:=2 to 10 do if a[i-1]<a[i] then begin write(a[i],’ ‘); m:=m+1; end; writeln(m); end.
|
d) Var a:array[1..10] of integer; m, i:integer; Begin for i:=1 to 10 do a[i]:=random(100); i:=2; While a[i-1]>a[i] do begin write(a[i],’ ‘); m:=m+1; end; writeln(m); end.
|
Задание №5. С клавиатуры вводится некоторая строка. Требуется определить сколько раз в строке встречаются символы «,» и заменить их на символы пробела. Определите правильный вариант программы.
а) Var s:string[20]; m, i:integer; Begin Readln(s); for i:=1 to 20 do if s[i]=’,’ then begin m:=m+1; s[i]:=’ ’; end; writeln(m); end.
|
b) Var s:string[20]; m, i:integer; Begin Readln(s); for i:=1 to length(s) do if s[i]=’,’ then begin m:=m+1; s[i]:=’ ’; end; writeln(m); end.
|
c) Var s:string[20]; m, i:integer; Begin Readln(s); for i:=1 to length(s) do if s[i]=’,’ then s[i]:=’ ’; m:=m+1; writeln(m); end.
|
d) Var s:string[20]; m, i:integer; Begin Readln(s); for i:=1 to length(s) do begin m:=m+1; s[i]:=’ ’; end; writeln(m); end.
|
Задание №6. С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее: Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные 0, считать положительными).
Задание №7. Даны круг и квадрат. Составьте программу, определяющую по введенным вами значениям длин стороны квадрата и радиуса круга, одно из утверждений «Круг вписан в квадрат» или «Квадрат вписан в круг».
Задание №8. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b.
Задание №9. Даны символьные файлы f1 и f2. Перепишите с сохранением порядка следования компоненты файла f1 в файл f2, а компоненты файла f2 в файл f1. Использовать вспомогательный файл h.
Задание №10. Выполняется по инструкции, которая прилагается.
Создать файл, содержащий информацию о десяти учащихся (Ф.И.О., три оценки, класс). Переписать сведения из этого файла в текстовый файл так, чтобы фамилии учащихся перечислялись в соответствии с порядком возрастания среднего балла.
Вариант 2
Задание №1. Перечислить через запятую, в возрастающем порядке, элементы которые входят в множество А после выполнения следующей последовательности операторов.
Var A,B,C:set of 1..100;
Begin
A:=[1..20,30,40];
B:=A-[2..20];
C:=[10,20,30,40,50];
A:=B*(А-C);
End.
Задание №2. В результате выполнения фрагмента программы значение переменной х должно стать равным 100. Выберите правильный фрагмент.
Begin X:=0; For I:=1 to 100 do x:=x+1; End.
|
Begin X:=0; For I:=1 to 100 do x:=x+i; End.
|
Begin X:=0; For I:=1 to 100 do x:=x+100; End.
|
Begin X:=0; For I:=1 to 100 do x:=x+1; End.
|
Задание №3. Какое значение переменной А будет выведено на экран оператором writeln(A) в результате выполнения следующей программы?
Var A, k:integer;
Begin
A:=0; k:=0;
while A<=27 do
begin
if k mod 2 =0 then A:=A+k;
k:=k+1;
end;
writeln(A);
end.
Задание №4. Требуется поменять местами первый и минимальный элементы массива. Массив заполняется случайными числами. Определите правильный вариант программы.
а) Var a:array[1..10] of integer; m, i:integer; Begin for i:=1 to 10 do a[i]:=random(100); m:=a[1]; for i:=2 to 10 do if m>a[i] then m:=a[i]; a[1]:=m; m:=a[1]; end.
|
b) Var a:array[1..10] of integer; m, i, c:integer; Begin for i:=1 to 10 do a[i]:=random(100); m:=a[1]; for i:=2 to 10 do if m>a[i] then m:=a[i]; c:=a[1]; a[1]:=a[i]; a[i]:=c; end.
|
c) Var a:array[1..10] of integer; m, i, c, k:integer; Begin for i:=1 to 10 do a[i]:=random(100); m:=a[1]; k:=1; for i:=2 to 10 do if m>a[i] then begin m:=a[i]; k:=i; end; a[1]:=a[k]; a[k]:=a[1]; end.
|
d) Var a:array[1..10] of integer; m, i, c, k:integer; Begin for i:=1 to 10 do a[i]:=random(100); m:=a[1]; k:=1; for i:=2 to 10 do if m>a[i] then begin m:=a[i]; k:=i; end; c:=a[1]; a[1]:=m; a[k]:=c; end.
|
Задание №5. С клавиатуры вводится некоторая строка. Требуется удалить из нее все символы пробела. Определите правильный вариант программы.
а) Var s:string[20]; m, i:integer; Begin Readln(s); i:=1; while i<=length(s) do if s[i]=’ ’ then delete(s,i,1) else i:=i+1; end.
|
b) Var s:string[20]; m, i:integer; Begin Readln(s); i:=1; while i<=length(s) do begin if s[i]=’ ’ then delete(s,i,1) i:=i+1; end.
|
c) Var s:string[20]; m, i:integer; Begin Readln(s); for i:=1 to length(s) do if s[i]=’ ’ then delete(s,s[i],1) end.
|
d) Var s:string[20]; m, i:integer; Begin Readln(s); i:=1; while i<=length(s) do if s[i]=’ ’ then delete(s,i,1) end.
|
Задание №6. С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее: Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.
Задание №7. Составьте программу вычисления суммы цифр введенного с клавиатуры трехзначного натурального числа. Например, для числа 128 сумма цифр 11, для числа 34 сумма цифр 12.
Задание №8. Дана строка. Подсчитать, сколько в ней букв r, k, t.
Задание №9. Найдите в файле и выведите на экран отрицательные числа.
Задание №10. Выполняется по инструкции, которая прилагается.
Создать текстовый файл bibliot.txt, который содержит сведения о 10 книгах (автор, название, год издания). Найти и переписать в отдельный файл в алфавитном порядке книги, издаваемые с 1960 г. Выяснить, имеется ли книга с названием «Информатика», если имеется, то вывести фамилию автора и год издания.