Контрольная работа №3. «Начала программирования»
Вариант 1.
1. Какой оператор используется для ввода данных в языке программирования Pascal?
2. В языке программирования Pascal для организации цикла используются операторы for, while и repeat. При применении которого (или которых) из них заранее точно известно число повторений цикла?
3. Определите значение переменных а и b после выполнения фрагмента программы:
а := 10
b := 110
b := 110 + b/a
a := b/11*a
b := a mod 100
4. Было произведено девять запусков программы:
var s, t: integer;
begin
readln(s);
readln(t);
if (s < 4) or (t < 4)
then writeln('YES')
else writeln('NO')
end.
при которых в качестве значений переменных s и t вводились следующие пары чисел:
(5, 4); (5, 6); (–2, 1); (5, 8); (7, 8); (–5, 5); (–2, 2); (4, 3); (3, –8).
Выпишите пары чисел, при которых программа напечатала «NO»?
5. Запишите число, которое будет напечатано в результате выполнения программы.
var s, n: integer;
begin
s := 78;
n := 0;
while n < 12 do
begin
s := s – 8;
n := n + 2
end;
writeln(s)
end.
pizza = {1: ["Пепперони", 3], 2: ["Четыре сыра", 5], 3: ["Кальцоне", 8], 4: ["Чокнутый макаронник", 10], 5: ["Адриано Челентано", 12]}
drink = {1: ["Пиво пенное", 2], 2: ["Кола", 1], 3: ["Кумыс", 4]}
a = "-"
print("Меню жратвы:")
for i in pizza:
print(f"{i}{pizza[i][0]}{a*(25-len(pizza[i][0]))}{pizza[i][1]} $.")
print("Меню выпивки:")
for i in drink:
print(f"{i}{drink[i][0]}{a*(25-len(drink[i][0]))}{drink[i][1]} $.")
p1 = int(input("Какую пиццу желаете? "))
p2 = int(input("В каком количестве? "))
d1 = int(input("Что будем пить? "))
d2 = int(input("Сколько налить? "))
res_food = pizza[p1][1]*p2
res_drink = drink[d1][1]*d2
dis1 = 0
dis2 = 0
dis3 = 0
if p2>=5:
res_food=(p2-(p2//5))*pizza[p1][1]
dis1 = p2//5*pizza[p1][1]
if d2>3 and drink[d1][1]>2:
res_drink=drink[d1][1]*d2*0.85
dis2 = drink[d1][1]*d2*0.15
res = res_food+res_drink
if res>50:
res*=0.8
dis3 = (res_food+res_drink)*0.2
print(f"\n\nК оплате:\n{pizza[p1][0]} {p2} шт. {res_food}$ (Скидка = {dis1})\n{drink[d1][0]} {d2} шт. {res_drink}$ (Скидка = {dis2})\nИтого: {res}$ (Итоговая скидка = {dis1+dis2+dis3})")
Объяснение:
{данная программа переводит любое сочетание символов ascii в систему счисления заданную пользователем.}
//pascal abc.net v3.0 сборка 1111
var
a,i,b,r,n,j,bug: integer;
s,se,slo,slof: string;
procedure preob(var a,b,n: integer; var se: string);
begin
repeat
b: =a mod n;
a: =a div n;
str(b,se);
s+=se;
until (a< =n-1);
end;
beginreadln(slo);
readln(n);
for j: =1 to length(slo) do
begin;
a: =ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i: =1 to length(s) div 2 do
begin;
se: =s[i];
s[i]: =s[length(s)-i+1];
s[length(s)-i+1]: =se[1];
end;
write(s,'-');
slof: =slof+s;
delete(s,1,length(s));
end;
end.
пример ввода:
работа на завтра.
2
пример вывода:
11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-
{таким образом, фразу " работа на завтра." можно закодировать как "11000100-11101110-11101100-11100000-11111000-11101101-11111111-11111111-100000-11110000-11100000-11100001-11101110-11110010-11100000-100000-11101101-11100000-100000-11100111-11100000-11100010-11110010-11110000-11100000-101110-".}