A есебі Жұптар program esepA;
var i,n,s:integer;
a:array[1..1000] of integer;
f1,f2:text;
begin
assign(f1,’a.in’);
reset(f1);
assign(f2,’a.out’);
rewrite(f2);
readln(f1,n);
for i:=1 to n do read(f1,a[i]);
s:=0;
for i:=1 to n do
if a[i] mod 2 =1 then s:=s+a[i];
writeln(f2,s);
close(f1);
close(f2);
end.
B есебі Көңілді цифрлер
program esepB;
var i,s:integer;
c:char;
a:string[26];
f1,f2:text;
begin
assign(f1,’b.in’);
reset(f1);
assign(f2,’b.out’);
rewrite(f2);
a:=’’;
for i:=1 to 26 do begin
s:=0;
while not eof(f1) do
begin
read(f1,c);
if a[i]=c then s:=s+1;
end;
if s<>0 then writeln(f2,a[i],’ ‘,s);
reset(f1);
end;
close(f1);
close(f2);
end.
С Жай сандар
program esepC;
var n,s:longint;
i,j,k:integer;
f1,f2:text;
begin
assign(f1,’c.in’);
reset(f1);
assign(f2,’c.out’);
rewrite(f2);
readln(f1,n);
s:=0;
for i:=1 to n do begin
k:=1;
for j:=2 to i do
if i mod j=0 then k:=k+1;
if k=2 then s:=s+i;
end;
writeln(f2,s);
close(f1); close(f2);
end.
до завтра
Оператор цикла с параметром используется в тех случаях, когда некоторое однообразное действие надо повторить определенное количество раз. Особенно, если это количество достаточно велико. Бывают же такие задачи, когда необходимо, например, вычислить сумму каких-либо величин, каждая из которых вычисляется по формуле. Ведь если непосредственно вычислять сумму 1 + 2 + 3 + ... + 1000, то программа разрастется до невообразимых масштабов.
Оператор цикла с параметром в народе ещё называют "оператор For", и в Pascal он бывает двух типов (второй тип смотрите ниже). Первый записывается так:
for i := N1 to N2 do
<ОПЕРАТОР>
Всё, что находится между for и do, называется заголовком цикла, после do – телом цикла. Переменная i зазывается параметром цикла и имеет порядковый тип (целые числа, логический тип, символы, перечислимый и диапазонный тип). Слова for, to и do – это служебные слова Pascal, которые использовать в своих программах для обозначения переменных нельзя. Индекс i, которым обозначаются номера действий в операторе цикла, изменяется от меньшего N1 к большему N2 (N1 ≤ N2). Первый номер N1 по значению не должен превышать второй N2, иначе цикл не запустится.
Есть обучающая задача:
«Цена товара обозначена в рублях с точностью до копеек, то есть действительным числом с двумя цифрами после десятичной точки. Запишите в две целочисленные переменные стоимость товара в виде целого числа рублей и целого числа копеек и выведитеих на экран. При решении этой задачи нельзя пользоваться условными инструкциями и циклами.»
В задаче приведены тесты:
Тест 1
Входные данные:
1
10.35
Вывод программы:
1
10 35
Тест 2
Входные данные:
1
1.99
Вывод программы:
1
1 99
Тест 3
Входные данные:
1
3.50
Вывод программы:
1
3 50
Нижеприведенное решение проходит вышеупомянутые тесты, а ещё: 0.01, 0.10, 40.80, 40.30, 1.01, 1.10
Однако обучающая система выдаёт с тестовым вариантом, который программа не пройдёт. Не могу придумать что я не учитываю.
1
2
3
4
5
6
7
8
p = float(input())
r = int(p)
print(r, end=' ')
p *= 10
kk = p % 10
p *= 10
kd = p % 10
print(int(kk), int(kd), sep='')