Pascal ABC

 

ГЛАВНАЯ
УСТАНОВКА
ОКНО ПРОГРАММЫ
ЛИНЕЙНЫЕ АЛГОРИТМЫ
ЧЕРТЁЖНИК
GraphABC
    РОБОТ
АЛГОРИТМЫ С ВЕТВЛЕНИЯМИ
АЛГОРИТМЫ С ПОВТОРЕНИЯМИ
ПРОЦЕДУРЫ И ФУНКЦИИ
ТЕСТЫ
ТВОРЧЕСКИЕ РАБОТЫ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
 
 

 

 

 

 

ЛИНЕЙНЫЕ АЛГОРИТМЫ◊  

Первая программа Простейшие программы Арифметические выражения Вычисление по формулам Целочисленная арифметикаЦелочисленные типы данных. Системы счисления   Самостоятельная работа Величины логического типа Вычисление логических выражений Задачи повышенной сложности

Алгоритмы, в которых команды выполняются последовательно одна за другой, в порядке их записи, называются линейными.

Целочисленная арифметика

Контроль знаний Тест: Вычисление по формулам

Вопросы для повторения:

1. Перечислите этапы решения задачи.

2. Каковы основные этапы алгоритма решения задачи?

3. Какой оператор предназначен для ввода данных  в Паскале ABC?

4. Какой оператор предназначен для вывода данных  в Паскале ABC?

5. Для чего применяются одинарные кавычки при использовании оператора вывода?

6. Зачем применяют двоеточие вместе с оператором вывода?

7. Чем отличается Write() от Writeln()?

8. Чем отличается Read() от Readln()?

9. Когда в алгоритме программы ставится ; (точка с запятой)?

Целый тип данных

Переменные целого типа описываются посредством идентификатора Integer. Они могут принимать значения в диапазоне от -32768 до 32767. К данным целого типа можно применить операции "+"-сложение, "-"-вычитание,  "*"-умножение и некоторые другие.

Так как в результате деления одного целого числа на другое не всегда получается целое число, то имеются операции:

div - целая часть от деления;

mod - остаток от деления.

  Примеры

   19 div 4=4

 12 div 4=3

-21 div 4=-5

 -7 div (-4)=1

 45 div 10=4

 19 mod 4=3

 12 mod 4=0

-21 mod 4=-1

 -7 mod(-4)=-3

 45 mod 10=5

Примечание. Переменной целого типа присваивать значение, получаемое в результате выполнения обычной операции деления "/", нельзя, так как при делении одного числа на другое целое число результат не всегда является целым числом. При использовании операторов div и mod переменные описываются как переменные целого типа, т.е. ,например, integer или longint.

Решение задач

  Пример 1. Заданы два целых числа k и d. Используя только арифметические операции, найдите целую и дробную части от деления k на d

Этапы выполнения задания.

I. Определение исходных данных: переменные k,d.

II. Определение результатов: переменные cel, drobn.

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Вычисление значений cel=k div d, a=k/d, drobn=a-cel.

3. Вывод результата.

IV. Описание переменных:

Переменные a,drobn имеют тип real, а переменные k,d,cel имеют тип integer..

V.  Программа:

var a,drobn:real;

k,d,cel:integer;

Begin

writeln('введите два числа'); readln(k,d);

cel:=k div d;                        {целочисленное деление}

a:=k/d;                               {обычное деление}

drobn:=a-cel;

writeln('целая часть - ',cel);

writeln('дробная часть - ',drobn);

Еnd.

Можешь загрузить!       Пример 1

VI. Тестирование

1. Запустите программу и введите значения

k=2, d=3

Проверьте, результат должен быть следующим:

cel=  1,  drobn= 0.666666666667

Проверить правильность вычислений можно на калькуляторе.

2. Заполните таблицу

 

k

d

cel

drobn

1

20

 6

 

 

2

51

 13

 

 

3

123

 26

 

 

  Пример 2. Дано трехзначное число. Чему равны его цифры?

Этапы выполнения задания.

I. Определение исходных данных: переменная а (трехзначное число).

II. Определение результатов: переменные с1,с2,с3 (цифры числа).

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Выделение цифр числа:

c1:=a div 100;

c2:=(a mod 100) div 10;        {или  c2:=(a div 10) mod 10;}

c3:=a mod 10;

3. Вывод результата.

IV. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип integer.

V.  Программа:

var a,с1,с2,с3:integer;

Begin

writeln('введите трёхзначное число '); readln(a);

c1:=a div 100;

c2:=(a mod 100) div 10;        {или  c2:=(a div 10) mod 10;}

c3:=a mod 10;

writeln('первая цифра -',c1);

writeln('вторая цифра -',c2);

writeln('третья цифра -',c3);

Еnd.

 

Можешь загрузить!       Пример 2

VI. Тестирование

1. Запустите программу и введите значения

a=234

Проверьте, результат должен быть следующим:

первая цифра - 2

вторая цифра - 3

третья цифра - 4

2. Введите другие числа. Убедитесь в правильности работы программы.

 

  Пример 3. Дано действительное число a. Используя только пять операций умножения получить a15.

Этапы выполнения задания.

I. Определение исходных данных: переменная а (действительное число).

II. Определение результатов: переменная  s (результат).

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Вычисление степени по формуле

b:=a*a;                                     {вторая степень}

с:=b*b;                                     {4 степень}

d:=c*a;                                     {5 степень}

s:=d*d*d;                                  {15  степень}

3. Вывод результата.

IV. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип integer.

V.  Программа:

var a,b,c,d,s:integer;

Begin

writeln('введите число  a'); readln(a);

b:=a*a;                                     {вторая степень}

с:=b*b;                                     {4 степень}

d:=c*a;                                     {5 степень}

s:=d*d*d;                                  {15  степень}

writeln('результат = ',s);

Еnd.

 

Можешь загрузить!       Пример 3

VI. Тестирование

1. Запустите программу и введите значение

а=2

Проверьте, результат должен быть следующим:

s= 32768

Проверить правильность вычислений можно на калькуляторе.

2. Заполните таблицу

 

a

s

1

3  

2

4  

3

5  

3. Сравните полученное значение второй и третьей строки. Получилось 415>515. Согласны ли вы с компьютером? Почему так произошло? Потому что указанный вами тип не вмещает значение 515. Измените в алгоритме программы тип integer на real. Запустите программу на выполнение. Получим 515=s=30517578125.

  Пример 4. Дано шестизначное число а. Найти сумму цифр числа.

Этапы выполнения задания.

I. Определение исходных данных: переменная а (шестизначное число).

II. Определение результатов: переменные с1,с2,с3,c4,c5,c6 (цифры числа),sum (сумма цифр).

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Выделение цифр числа:

c1:=a div 100000;

c2:=(a div 10000) mod 10;

c3:=(a div 1000) mod 10;

c4:=(a div 100) mod 10;

c5:=(a div 10) mod 10;

c6:=a mod 10;

3. Нахождение суммы цифр числа:

sum:=c1+c2+c3+c4+c5+c6;

4. Вывод результата.

IV. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип integer.

V.  Программа:

var a,с1,с2,с3,c4,c5,c6,sum:integer;

Begin

writeln('введите шестизначное число '); readln(a);

c1:=a div 100000;

c2:=(a div 10000) mod 10;

c3:=(a div 1000) mod 10;

c4:=(a div 100) mod 10;

c5:=(a div 10) mod 10;

c6:=a mod 10;

sum:=c1+c2+c3+c4+c5+c6;

writeln('Сумма цифр числа = ',sum);

Еnd.

 

Можешь загрузить!       Пример 4

VI. Тестирование

1. Запустите программу и введите значения

a=145879

Проверьте, результат должен быть следующим:

Сумма цифр числа = 34

Проверить правильность вычислений можно на калькуляторе.

2. Заполните таблицу

 

a

s

1

333333  

2

456789  

3

654321  

  Проверка знаний

Тест: Операторы целочисленной арифметики div и mod

Тест: Целочисленная арифметика

Тест: Линейные алгоритмы. Целочисленная арифметика

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

  1. Задано двухзначное число. Чему равна последняя цифра числа?

  2. Задано двухзначное число. Чему равна первая цифра числа?

  3. В двухзначное число вписать ноль в середину и получить трехзначное число.

  4. Найдите сумму цифр заданного трёхзначного  числа.

  5. Найдите цифры заданного четырёхзначного  числа.

  6. Задано  пятизначное число. Найдите цифры и сумму цифр пятизначного  числа.

  7. С начала суток прошло k минут. Определите сколько сейчас часов и минут.

  8. Идёт k-я секунда суток. Определить который сейчас час (в часах, минутах и секундах). Например, если k=13257=3*3600+40*60+57, то часов - 3, минут - 40, секунд - 57.

  9. Робинзон Крузо провёл на острове f дней. Сколько полных недель он пробыл на острове?

  10. Поезд перевозит s тонн груза. Сколько автомобилей грузоподъемностью  b тонн (b<<s) он способен заменить?

  11. Дано действительное число a. Не пользуясь никакими другими операциями кроме умножения, получить:

    a) a13 за пять операций;

    b) a21 за шесть операций;

    c) a3 и a10 за четыре операции;

    d) a4  и  a12  и  a28  за шесть операций.

 

СЕРВИС 

Copyright © 2008 СОШ №2 им. Н.П. Массонова г.Свислочь © Синица А.А.