Лабораторная работа. Задача1 :Дано натуральное число n (n<=9999)
Задача1 :Дано натуральное число n (n<=9999). Определить, является ли оно палиндромом («перевертышем»), с учетом четырех цифр. Например, палиндромами являются числа : 2222, 6116, 0440.
Итак, у нас четырехзначное число, поэтому переменная оператора For изменяется от 1 до 4. В переменной m хранится «остаток» числа, сначала он равен введенному числу. В переменной с именем r формируем значение числа - «перевертыша». Основными операциями являются : r:=10*r + m Mod 10 m:=m Div 10.
Результат трассировки приведен в таблице.
i | m | r |
- | ||
0*10+3994 mod 10= 0+4=4 | ||
4*10+399 mod 10=40+9=49 | ||
49*10+39 mod 10=490+9=499 | ||
499*10+3 mod 10=4990+3=4993 |
Programex1;
Var n,m,r,i : Integer;
Begin
writeln(‘Введите целое число, меньшее 10000’);
readln(n);
m:=n; r:=0;
For i:=1 to 4 do
begin
r:=r*10+m mod 10; m:=m Div 10;
end;
if r=n Then Writeln(‘Да’);
Else Writeln(‘Нет’);
readln;
end.
1) Измените программу так, чтобы можно было обрабатывать целые числа из диапазона Longint.
2) Замените цикл for, в программе, на циклы While и Repeat ... Until
Задача 2 :Дано натуральное число n . Требуется подсчитать количество цифр данного числа.
Решение: Подсчет цифр начнем с последней цифры числа. Число делим на 10, убирая последнюю цифру и т.д.
Пусть m - это число, л- счетчик цифр.
Program ex2;
var m,n : Longint;
k : Integer;
begin
writeln(‘введите целое число’);
readln(n);
m:=n; k:=0;
While m<>0 Do
begin Inc(k); m:=m Div 10 end;
writeln (‘В числе’,n,’ - ‘,k,’ цифр ‘);
end.
Модифицируя программу ех2, решите следующие задачи :
· найдите сумму цифр числа;
· найдите первую цифру числа;
· поменяйте порядок цифр числа на обратный;
· найдите количество четных цифр числа;
· найдите наибольшую цифру числа;
· найдите сумму цифр числа, больших 5;
· ответьте на вопрос, сколько раз данная цифра встречается в числе.
Задача 3 : Натуральное число р называется простым, если оно делится только на 1 и на себя. По соглашению 1 не считают простым числом. Начало последовательности простых чисел имеет вид : 2,3,5,7,11,13, 17, 19, 23, ....
В программе ех3 определяется, является ли данное число простым. Мы ищем делители числа n в интервале от 2 до n div 2, хотя можно было бы ограничиться интервалом от 2 до целой части Ön
program ex3;
Var i, n :Longint;
Begin
Writeln(‘Введите натуральное число’);
Readln(n);
i:=1;
Repeat
inc(i)
Until (i>n div 2) or (n mod i = 0);
if i> n div 2 Then Writeln(‘число ’,n,’простое’);
Еlse Writeln(‘Число ‘,i,’- первый делитель
числа’, n, ‘ , больший 1’);
end.
Эту задачу можно решить и с использованием оператора While. Сделайте это. Затем измените программу так, чтобы в ней осуществлялся вывод всех делителей числа n
Подсказка. Логическое выражение в операторе Repeat....Until упростится, а в нем останется только условие i>n div 2, а в теле цикла появится оператор
if n mod i = 0 Then Writeln(....,i)
Оператор варианта выбора
Сase <порядковая переменная> of
<константа 1>: <оператор 1>;
<константа 2>: <оператор 2>;
......
<константа n>: <оператор n>;
[Else <оператор >; ]
End;
Если порядковая переменная равна одной из перечисленных констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. Если значение переменной не совпадает ни с одной константой, то выполняется оператор, стоящий после Else, если он есть, либо управление передается на оператор, следующий за End.
Задача 1:Составьте программу, в которой определяется, какой буквой - гласной или согласной - является введенный символ английского алфавита.
Решение :
Разделим все символы на три группы :
· гласные буквы английского алфавита;
· согласные буквы английского алфавита;
· символы, не являющиеся буквами английского алфавита.
Programех4;
varch : char;
Begin
Writeln(‘Введите символ’);
Readln(ch);
Case ch of
‘a’,’e’,’i’,’o’,’u’ : writeln(‘Это гласная’);
‘a’...’z’ : Writeln(‘это согласная’);
else writeln(‘это не английский алфавит’);
end;
End.
Задача 2.Мастям игральных карт условно присвоены следующие порядковые номера: «пики»-1, «трефы»-2, «бубны»-3, «червы»-4. По заданному номеру масти m (1£m£4) определить название соответствующей масти.
Program mast;
var m:integer;
begin
write(‘введите номер масти’); readln(m);
case m of
1 : writeln(‘пики’);
2 : writeln(‘трефы’);
3 : writeln(‘бубны’);
4 : writeln(‘червы’)
else writeln(‘вы ввели неправильный номер’);
end;
end.
Дата добавления: 2015-01-15; просмотров: 3570;