При выполнении данной работы, вам необходимо написать

advertisement
При выполнении данной работы, вам необходимо написать
программу. Язык программирования вы выбираете сами. Если вы не
знаете ни одного языка программирования, то вы можете написать
словесную инструкцию (алгоритм) или нарисовать блок-схему, как
решается данная задача. Все шаги необходимо прокомментировать.
Для решения задачи используется язык программирования pascal.
Задача 1. Дано трехзначное число. Напишите программу определения,
является ли оно палиндромом ("перевертышем"), т. е. числом, десятичная
запись которого читается одинаково слева направо и справа налево.
Решение:
program e1;
var l,s,b,c:byte;a:integer;
begin
writeln('Ведите трехзначное чмсло!');
read(a);{Водим трехзначное число'}
s:=a div 100;{берет первую цифру трехзначного числа}
b:=a div 10;{берет вторую цифру трехзначного числа}
c:=a mod 10;{берет третью цифру трехзначного числа}
if (s=c) then writeln('Данное число является палиндроном'){проверяет если первая
цифра равняется третьей цифре
трехзначного числа то выводит Данное число является палиндроном,иначе выводит
Данное число не является палиндроном}
else writeln('Данное число не является палиндроном');
end.
Задача 2. Дана строка символов до точки (<=255). Определить, является
ли она записью целого десятичного числа, кратного трём. Строка символов —
это строка, которая заканчивается точкой. Если строка является записью целого
десятичного числа, кратного трём,то выводим 1. Если не так, то 0.
Решение:
program e2;
var a,c:string;o,q,k,i,l,s,k2,q2:byte;b:array[1..255] of string;h,sp,sk:integer;
begin
writeln('‚Ведите строку символов!');
read(a);
l:=length(a);l:=l-1; {Определяет длину строки}
for i:=1 to l do {Записывает все символы кроме точки в символьный
одномерный массив}
b[i]:=copy(a,i,1);
for i:=1 to l do {Проверяет нет ли в строке буквы или знаки, подсчитывает
сумму цифр}
begin
if (b[i]='0')or(b[i]='1')or(b[i]='2')or(b[i]='4')or(b[i]='5')
or(b[i]='7')or(b[i]='8') then begin val(b[i],s,h);
sp:=sp+s;k:=k+1;end;
if (b[i]='3')or(b[i]='6')or(b[i]='9') then begin k2:=k2+1;val(b[i],s,h);
sp:=sp+s;end;
end;
k:=k+k2;
if k2=l then begin q2:=1;writeln('1');end;{если в строке дано число кратное
трем,например:666399 то выводит 1}
if (sp=9)and(k=l) then begin q:=1;writeln('1')end;{если в строке сумма цифр
равняется 9 то выводит 1}
if (q=0)and(k=l)and(q2=0) then begin for i:=1 to l do
c:=b[i]+c;val(c,sk,h);end;
{если в строке есть число у которого количество цифр не превышает 9 то
выволит 1}
if (q=0)and(sk mod 3=0)and(k=l)and(q2=0) then begin o:=1; writeln('1');end;
if (q=0)and(o=0)and(q2=0) then writeln('0');{если в строке не дано число
кратное трем то выводит 0}
end.
Задача 3. Дана строка символов (<=255). Удалить из неё все знаки
препинания (. , ? : ; ! - )
Решение:
program e3;
var a:string;l,i:byte;b:array[1..255] of string;
begin
writeln('Ведите строку символов!');
read(a);{Водим строку символов}
l:=length(a);{Подсчитывает количество символов в строке }
for i:=1 to l do
b[i]:=copy(a,i,1);{Переписывает все символы из строки в одномерный символьный
массив}
a:='';{Удаляет все символы из строки}
for i:=1 to l do
begin
if (b[i]='.')or(b[i]=',')or(b[i]='?')or(b[i]=':')or(b[i]=';')or(b[i]='!')
or(b[i]='-') then b[i]:='';{Если символ в строке равняется знаку препинания то
удаляет его}
a:=a+b[i];{Суммирует все символы из строки кроме знаков препинания}
end;
writeln('Строка полученных символов равна:',a);{Выводит полученную строку без
знаков препинания}
end.
Задача 4. Напишите программу подсчитывающего количество символов
использованных в произвольном вами выбранном тексте.
Решение:
program e4;
var a:string;l:integer;
begin
writeln('Ведите произвольный текст');
read(a);{Водим произвольный текст}
l:=length(a);{Определяет количество символов в тексте}
writeln('Количество символов в произвольном набранном тексте равна:',l);{Выводит
количество символов в произвольно набранном тексте}
end.
Задача 5. Лесенкой называется набор кубиков, в котором каждый более
верхний слой содержит кубиков меньше, чем предыдущий.
□
□□□□
□□□□□
□□□□□□□□
Напишите программу, который подсчитывает число лесенок, которое
можно построить из N кубиков.
Решение:
program e5;
var a,i,s,n:integer;
begin
writeln('Ведите количество кубиков!');
read(a);{Водим количество кубиков}
while i=n do{если нельзя построить следующую лесенку то осуществляет выход из
цикла пока}
begin
i:=i+1;{счетчик для реализации количества лесенок }
if s+i<=a then begin s:=s+i;n:=n+1;end;{определяет можно ли построить следующую
лесенку и подсчитывает количество лесенок }
end;
writeln('Количество лесенок равна:',n);{Выводит количество лесенок}
end.
Download