10203

Работа с простой переменной. Алгоритмы целочисленной арифметики

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 4 Тема: Работа с простой переменной. Алгоритмы целочисленной арифметики Цель работы: освоить работу с простой переменной и алгоритмами их обработки при решении задач целочисленной арифметики. Типовые алгоритмы обработки простой переменной Р

Русский

2013-03-21

58 KB

36 чел.

Лабораторная работа № 4

Тема: Работа с простой переменной. Алгоритмы целочисленной арифметики

Цель работы: освоить работу с простой переменной и алгоритмами их обработки при решении задач целочисленной арифметики.

Типовые алгоритмы обработки простой переменной

Рассмотрим некоторые типовые алгоритмы обработки простой переменной, на базе которых решается множество задач, некоторые из них в дальнейшем будут рассмотрены. Положим, что в декларативной части программы описаны следующие переменные:  number, number1, number2 - целые числа, подлежащие обработке; temp - переменная для хранения цифры числа; delit – делители числа; flag – переменная логического типа, которая используется для досрочного выхода из цикла. Для выделения цифры из числа будем использовать целочисленные операции div (целая часть) и mod (целый остаток).

1. Выделение цифр в числе

Реализация:

readln(number);

while number<>0 do

begin

temp:=number mod 10;   {выделение цифры из числа}

number:=number div 10;  {уменьшение числа на один разряд}

end;

2. Нахождение делителей числа

Реализация:

readln(number);

write(‘ делители числа:  ’);

for delit:=2 to number div 2 do

                 if number mod delit=0 then write(delit, ‘  ‘);

3. Проверка на простоту

Простым является число, которое имеет только два делителя (1 и само себя). Для того чтобы  определить является ли число простым, можно подсчитать количество делителей, для этого нужно использовать  типовой алгоритм нахождение делителей числа, но можно использовать и более оптимальный алгоритм, который также основан на предыдущем алгоритме.

Реализация:

writeln(‘Введите целое число’);

readln(number);

flag:= true;   {предположим, что число простое}

delit:=2;

while flag and (delit< =number div 2) do

          if number mod delit=0 then flag:=false

else delit:=delit+1;

if flag then writeln (‘число простое‘)

          else writeln (‘число составное’);

4. Нахождение наибольшего общего делителя (НОД) двух чисел

Реализация:

writeln(‘Введите два целых числа’);

readln(number1, number2);

while number1<> number2 do

         if number1> number2  then number1:=number1-number2

                                              else number2:=number2-number1;

writeln (‘НОД чисел = ’, number1 );

Образцы решения задачи.

Задача № 1. Определить количество и сумму  цифр в числе.

Анализ постановки задачи.

Для решения данной задачи воспользуемся типовым алгоритмом выделения цифр в числе.

Входные данные.  

Число, подлежащее обработке - number (тип – целый).

Выходные данные.

Сумма цифр в числе - sum (тип – целый).

Количество цифр в числе - kol (тип – целый).

Промежуточные данные.

Переменная для хранения цифры числа - temp (тип – целый).

Алгоритм.

  1.  Запросить целое число.
  2.  Обнулить два счетчика (для суммы и количества цифр).
  3.  Выделить цифру из числа (использовать операцию целочисленного деления - mod).
  4.  Суммировать выделенную цифру числа.
  5.  Увеличить счетчик количества цифр на единицу.
  6.  Избавиться от разряда в числе (использовать операцию целочисленного деления - div).
  7.  Выполнять п. 3-6, до тех пор, пока обрабатываемое число не равно нулю.
  8.  Вывести результат на печать.

Текст программы

var

        number, temp, sum, kol: integer;

begin

writeln(‘Введите целое число’);

 readln(number);

kol:=0;

sum:=0;

while number<>0 do

                  begin

                    temp:=number mod 10;

                    sum:=sum+temp;  {подсчитывается сумма цифр в числе}

                    kol:=kol+1;  {подсчитывается количество цифр в числе}

                    number:=number div 10

                  end;

writeln (‘sum=  ‘, sum, ‘kol= ’, kol)

end.

Задача № 2. Определить является  целое число совершенным.

Анализ постановки задачи.

Df: Совершенным называется число, которое равно сумме всех своих делителей, кроме самого числа (например: 6=1+2+3).

Исходя из определения, для решения данной задачи, будем использовать типовой алгоритм нахождение делителей числа.

Входные данные.

Число, подлежащее обработке – number (тип - целый).

Выходные данные.

Сумма делителей числа  sum (тип - целый).

Промежуточные данные.

Переменная для хранения делителя обрабатываемого числа  delit (тип – целый).

Алгоритм.

  1.  Запросить целое число.
  2.  Обнулить счетчик суммы.
  3.  Найти сумму делителей числа (типовой алгоритм – нахождение делителей числа).
  4.  Сравнить обрабатываемое число с суммой делителей числа и вывести соответствующее сообщение на печать.

Текст программы

var

          number, delit, sum: integer;

begin

 writeln(‘Введите целое число’);

 readln(number);

sum:=0;

for delit:= 1 to  number div 2 do

                          if number mod delit =0 then sum:=sum+delit;

if number=sum then writeln(‘Заданное число является совершенным’)

                         else  writeln(‘Заданное число не является совершенным’)

end.

Задания для самостоятельного решения.

Вариант 1.

  1.  Дано натуральное число. Найти первую и последнюю цифры числа.
  2.  Определить количество натуральных трехзначных чисел, сумма цифр которых равна заданному числу N.
  3.  Составить программу для проверки, можно ли заданное натуральное число N представить в виде  куба простого числа.

Вариант 2.

  1.  Дано натуральное число. Верно ли, что сумма цифр данного числа равна А (А вводится с клавиатуры).
  2.  Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13.
  3.  Составить программу для проверки, можно ли заданное натуральное число N представить в виде  квадрата простого числа.

Вариант 3.

  1.  Дано натуральное число. Сколько раз данная цифра А встречается в данном числе (А вводится с клавиатуры).
  2.  Написать программу поиска двузначных чисел, обладающих следующим свойством: если к сумме цифр числа прибавить квадрат этой суммы, то получится снова данное число.
  3.  Составить программу для проверки, можно ли заданное натуральное число N представить в виде  произведения трех простых чисел.

Вариант 4.

  1.  Дано натуральное число. Верно ли, что в данном числе сумма цифр больше В, а само число делится на В (В вводится с клавиатуры).
  2.  Квадраты некоторых трехзначных чисел оканчиваются тремя цифрами, которые как раз и составляют исходные числа. Написать программу поиска таких чисел.
  3.  Составить программу для проверки, можно ли заданное натуральное число N представить в виде  произведения двух простых чисел.

Вариант 5.

  1.  Из данного натурального числа удалить все цифры А (А вводится с клавиатуры).
  2.  Среди трехзначных чисел найти те, сумма цифр которых делится на 9.
  3.  Составьте программу разложения натурального числа N на простые множители.

Вариант 6.

  1.  Дано натуральное число. Верно ли, что сумма четных цифр больше  сумма нечетных цифр данного числа.
  2.  Квадраты некоторых двухзначных чисел оканчиваются двумя цифрами, которые как раз и составляют исходные числа. Написать программу поиска таких чисел.
  3.  Заданы два целых числа М, N. Определить, больше ли сумма простых делителей числа М, произведения составных делителей числа N.

Вариант 7.

  1.  Дано натуральное число. Верно ли, что произведение нечетных цифр данного числа меньше  некоторого заданного числа.
  2.  Составьте программу получения в порядке убывания всех делителей данного числа.
  3.  Задано целое число N. Найти ближайшее к нему совершенное число.

Вариант 8.

  1.  Дано натуральное число не менее шести разрядов. Найти сумму цифр данного числа стоящих на нечетных местах.
    1.  Составьте программу определения наименьшего общего кратного двух натуральных чисел.
    2.  Задано целое число N. Определить количество различных цифр числа N.

Вариант 9.

  1.  Найти сумму нечетных делителей натурального числа.
  2.  Задано целое положительное число N меньшее 32000. Написать программу, определяющую, все ли цифры числа N меньше или равны 4. Если это условие выполняется, найти сумму этих цифр.

  1.  Вывести на печать сто простых чисел.

Вариант 10.

  1.  Найти произведение четных делителей натурального числа.
  2.  Найти сумму целых чисел из промежутка от 1 до 200, у которых ровно 5 делителей.
  3.  Даны натуральные числа N, M. Получить сумму M последних цифр числа N.

Контрольные вопросы:

Чему будет равно значение переменной с в результате выполнения последовательности команд присваивания?

с:=12; c:=6+c div 3*2;

Чему будет равно значение переменной t в результате выполнения последовательности команд присваивания?

r:=7; t:=3; t:=r+t; r:=t-r; t:=t-r;

Сколько раз выполнится тело цикла во фрагменте алгоритма:

b:=true; x:=64;

while b do begin

  b:=(x>=4);

  x:=x div 6+2

end;

4. Сколько раз выполнится тело цикла во фрагменте алгоритма:

q:=27; p:=36;

while q div 5= p div 7 do begin

 q:=q+2;

 p:=p+3

end;

5. Укажите, чему будет равно значение v после выполнения фрагмента алгоритма, если вводится целое значение n, равное 125...

с:=100; v:=0;

while n>0 do begin

v:=v+n div c;

n:=n mod c;

c:=с div 10

         end;

6. Вычислите результат выполнения фрагмента алгоритма:

n:=10;

s:=0;

for i:=1 to n div 2 do

s:=s+ n mod i;

7. Вычислите результат выполнения фрагмента алгоритма:

n:=19;

s:=0;

for i:= 2 to n mod 7 do begin

   s:=s+ n div i;

   n:= n div 2;

 end;

8. Какую операцию целочисленного деления необходимо использовать для получения цифры числа?

9. Почему целесообразнее выделять цифры из числа справа на лево, а не слева на право?

10.  Какой алгоритм необходимо применить, если все-таки цифры из заданного числа выделять слева на право?


 

А также другие работы, которые могут Вас заинтересовать

40820. Культура стародавнього Єгипту 36.23 KB
  Повсякденне життя єгиптян у часи великих фараонів. Переписувачі й осередки духовного життя. З висоти свого становища бог дав форму навколишньому світові вдихнув у нього повітря світло й життя вступив у двобій із силами безодні. Людство повстало примусивши Ра піднятися в небо але він продовжував зберігати порядок маат принцип істини та справедливості ним встановлений котрий став його життям.
40821. Моделі життєвого циклу та методології розробки ПЗ 451.75 KB
  Моделі життєвого циклу та методології розробки ПЗ Моделі життєвого циклу Модель життєвого циклу ПЗ структура що визначає послідовність виконання та взаємозв'язку процесів дій і завдань протягом життєвого циклу. В рамках специфічних моделей життєвого циклу які приписують правила організації розробки ПЗ в рамках даної галузі або організації визначаються більш конкретні процеси розробки. Таких моделей досить багато адже фактично кожен раз коли деяка організація визначає власний процес розробки в якості основи цього процесу розробляється...
40822. Культура Месопотамії 39.45 KB
  Культура Месопотамії Своєрідність месопотамської культури: космос як держава. Повсякденне життя жителів Месопотамії. Біля джерел біблійських сказань Якщо Стародавній Єгипет був імперією з усіма наслідками що витікали з цього то дещо інша ситуація склалася в Месопотамії Двуріччі з двома великими ріками Євфратом і Тигром які мали декілька приток Месопотамська цивілізація являла собою тип існуючої на давньому Близькому Сході сільськогосподарської' цивілізації заснованої на ірригації.' Шумери заклали основи для подальшого розвитку...
40823. Подэтапы первого этапа моделирования. Алгоритмизация моделей систем и их машинная реализация 183 KB
  Формы представления моделирующих алгоритмов Подэтапы первого этапа моделирования Рассмотрим более подробно основные подэтапы построения концептуальной модели МК системы и ее формализации см. формулировка цели и постановка задачи машинного моделирования системы. Дается четкая формулировка задачи цели и постановка исследования конкретной системы S и основное внимание уделяется таким вопросам как: а признание существования цели и необходимости машинного моделирования; б выбор методики решения задачи с учетом имеющихся ресурсов; в определение...
40824. Получение и интерпретация результатов моделирования систем 160 KB
  Подэтапы второго этапа моделирования. Получение и интерпретация результатов моделирования систем. Особенности получения результатов моделирования Подэтапы второго этапа моделирования Рассмотрим подэтапы алгоритмизации модели системы и её машинной реализации.1 Построение логической схемы модели.
40825. СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ СИСТЕМ НА ЭВМ 207.5 KB
  Подэтапы третьего этапа моделирования. Общая характеристика метода статистического моделирования. Сущность метода статистического моделирования. Примеры статистического использования Подэтапы третьего этапа моделирования Прежде чем приступить к последнему третьему этапу моделирования системы необходимо для его успешного проведения иметь чёткий план действий сводящийся к выполнению следующих основных подэтапов.
40826. Псевдослучайные последовательности и процедуры их машинной генерации 239.5 KB
  Способы генерации случайных чисел Примеры статистического использования Пример 4. Структурная схема системы SD Система SD функционирует следующим образом: получается пара независимых случайных чисел интервала 0 1 определяется координата точки xi xi1 показанной на рис. Схема моделирующего алгоритма системы SP В данном моделирующем алгоритме после ввода исходных данных и реализации операторов цикла происходит обращение к генератору случайных чисел т. Отметим что во всех рассмотренных примерах не требуется запоминания всего множества...
40827. Генерация базовой последовательности. Требования к генератору случайных чисел 259 KB
  Требования к генератору случайных чисел. Проверка и улучшение качества последовательностей псевдослучайных чисел. При дискретном моделировании базовым процессом является последовательность чисел {xi} = x0 x1 xN представляющих собой реализации независимых равномерно распределенных на интервале 0 1 случайных величин {i} = 0 1 N или в статистических терминах повторную выборку из равномерно распределенной на 0 1 генеральной совокупности значений величины . Поэтому на ЭВМ вместо непрерывной совокупности равномерных...
40828. Моделирование случайных воздействий на систему 216 KB
  Моделирование случайных воздействий на систему Моделирование случайных событий. Моделирование дискретных случайных величин. Моделирование непрерывных случайных величин. Моделирование случайных векторов 4.