Лабораторная работа. Задача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; просмотров: 3436;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.