Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР по ОАИП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
247.81 Кб
Скачать

Итоговая контрольная работа

КОНТРОЛЬНЫЕ РАБОТЫ ПО ДИСЦИПЛИНЕ

«Основы алгоритмизации и программирования»

Составитель: к.т.н., доцент каф. СИ ВСГУТУ Евдокимова И.С.

Вариант 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. Выберите правильный фрагмент.

  1. Var I,x:integer;

Begin

Read(x);

For I:=1 to 10 do

begin

x:=x*i;

writeln(x);

end;

End.

  1. Var I,x,y:integer;

Begin

Read(x);

For I:=1 to 10 do y:=x*i;

Writeln(y);

End.

  1. Var I,x:integer;

Begin

Read(x);

For I:=1 to 10 do

Writeln(x*I);

End.

  1. Var I,x:integer;

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. Выберите правильный фрагмент.

  1. Var I,x:integer;

Begin

X:=0;

For I:=1 to 100 do x:=x+1;

End.

  1. Var I,x:integer;

Begin

X:=0;

For I:=1 to 100 do x:=x+i;

End.

  1. Var I,x:integer;

Begin

X:=0;

For I:=1 to 100 do

x:=x+100;

End.

  1. Var I,x:real;

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 г. Выяснить, имеется ли книга с названием «Информатика», если имеется, то вывести фамилию автора и год издания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]