Rambler's Top100

Скачать программы    Все программы автора

ЛАБОРАТОРНАЯ РАБОТА 3.

ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ НАД ЦЕЛОЧИСЛЕННЫМИ ТИПАМИ ДАННЫХ

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

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

 

К  целочисленным типам  в TURBO Pascal (v.7.0) относятся:

ShortInt - переменные этого типа принимают целые значения в диапазоне -128..127. Тип Shortint занимает в памяти 8 бит.

Integer  - переменные этого типа принимают целые значения в диапазоне -32768..32767. Тип Integer занимает в памяти 16 бит.

LongInt  - переменные этого типа принимают целые значения в диапазоне -21474883648..2147488367. Тип Longint занимает в памяти 32 бита.

Comp  - переменные этого типа принимают только целые значения в диапазоне -9.2E18..9.2E18, что обеспечивает представление девятнадцатизначных чисел. Тип Comp занимает в памяти восемь байт. Заметим, что переменные типа Comp не могут использоваться: (а) в качестве индексов массивов; (б) в операторах For и Case.

Byte - переменные этого типа принимают целые значения в диапазоне 0..255. Занимают в памяти 8 бит.

Word - переменные этого типа принимают целые значения в диапазоне 0..65535. Занимают в памяти 16 бит. Char - переменные этого типа принадлежат множеству символов, упорядоченных в соответствии с кодами ASCII. Занимают в памяти один байт.

Каждому элементу целочисленных типов соответствует некоторый порядковый номер, поэтому все перечисленные типы относятся к порядковым.

Встроенная функция  Ord  возвращает для каждого значения любого порядкового типа его порядковый номер.

Встроенная функция  Pred возвращает для каждого значения любого порядкового типа предшествующее ему значение.

Встроенная функция  Succ возвращает для каждого значения любого порядкового типа следующее за ним значение.

Встроенная функция  Chr  возвращает для значений типа Char символ с заданным кодом.

Над целочисленными типами (кроме Char) определены следующие арифметические операции: сложение (+), вычитание или унарный минус (-), умножение (*), деление (/), целочисленное деление (DIV), остаток от деления (MOD). Операции "+" и "-" имеют более низкий приоритет по сравнению с остальными арифметическими операциями.

 

ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ

Пример 1.

 Поиск чисел Армстронга в диапазоне от  1 до  2000 . Натуральное число из n цифр называется  _числом Армстронга ., если сумма его цифр, возведенных в  n -ю степень, равна самому числу.

PROGRAM Primer_1 (Input,Output);

const R = 2000;

var f,k,s,p,n: Integer;

BEGIN

For f:=1 to R do

begin

s:=0; k:=f; n:=0;

While k<>0 do

begin k:=k DIV 10; n:=n+1 end;

k:=f;

{ n - количество цифр числа }

While k<>0 do

begin p:=k MOD 10; k:=k DIV 10;

If p<>0 then s:=Trunc (s+Exp(n*Ln(p)))

end;

If s=f then WriteLn (f)

end

END.

Пример 2

 Получение в порядке убывания всех делителей натурального числа.

PROGRAM Primer_2 (Input,Output);

var n,i: ShortInt;

BEGIN

Write ('Введите число, делители которого Вас интересуют: ');

ReadLn (n); Write ('Список делителей:');

For i:=n downto 1 do

If n MOD i=0 then Write (i, ' ')

END.

Пример 3.

 Демонстрация действия функции  Chr, Ord, Pred, Succ  для символьного типа данных.

PROGRAM Primer_3 (Input,Output);

var s: Char;

n: Integer;

BEGIN

Write ('Введите символ: '); ReadLn (s);

WriteLn ('Вот предыдущий символ: ',Pred(s));

WriteLn ('Вот последующий символ: ',Succ(s));

WriteLn ('Данный символ имеет код ASCII: ',Ord(s));

Write ('Введите число от 1 до 255: '); ReadLn (n);

WriteLn ('Символ имеющий такой код: ', Chr(n))

END.

 

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

 

1. Определить, является ли данное число четным.

2. Дано натуральное $n\leqslant 100,$определяющее возраст человека в годах. Дать для этого числа наименование  год, года  или  лет Например, 1 год, 23 года, 45 лет и т.д.

3. Дано натуральное число n, равное выраженной в копейках цене некоторого товара, например 317, 5005, 100 и т.д. Выразить цену в рублях и копейках, например 3 руб.17 коп., 50 руб.05 коп., 1 руб.00 коп. и т.д. (число копеек записывается всегда двумя цифрами).

4. Дано натуральное n. Вычислить: (а) $2^n$; (б) $(1+\frac{1}{1^2})(1+\frac{1}{2^2})\ldots(1+\frac{1}{n^2})$.

5. Дано целое m>1. Получить наибольшее целое k, при котором $4^k<m$.

6. Поле шахматной доски может быть указано парой натуральных чисел, каждое из которых не превосходит восьми: первое число - это номер вертикали, второе - номер горизонтали. Даны натуральные числа k,l,m,n, каждое из которых не превосходит восьми. (а) Выяснить, являются ли поля (k,l), (m,n) полями одного цвета. (б) Выяснить, можно ли с поля (k,l) одним ходом ладьи попасть на поле (m,n). Если нет, то выяснить, как это можно сделать за два хода (указать поле, на которое приводит первый ход).

7. Дан номер года. Найти число дней в этом году.

 Указание . В современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех, которые делятся на 100 и не делятся на 400. Например, 1990 год - не високосный, 2000 год - високосный.

8. Исследование проблемы "вечного календаря", т.е. проблемы быстрого определения дня недели, на который падает некоторая дата (число, месяц, год), показало, что номер дня недели (воскресенье имеет номер 0, понедельник - номер 1,..., суббота - номер 6) равен остатку от деления на 7 значения выражения [2.6 77 0m-0.2]+d+y+[y/4]+[c/4]-2c, где d - номер дня в месяце, m - номер месяца в году, нумерация начинается с марта (март имеет номер 1, апрель - номер 2,..., декабрь - номер 10, январь и февраль считаются месяцами с номерами 11 и 12 предыдущего года); y - число образованное двумя младшими цифрами года, с - число, образованное двумя старшими цифрами года, [x] означает целую часть числа х. Даны натуральные числа a,b,c, которые означают число, месяц и год. Определить день недели, на который падает указанная дата. Считать, что номер года лежит в диапазоне от 1582 до 4902.

9. Дано натуральное n. (а) Сколько цифр в числе n? (б) Чему равна сумма его цифр? (в) Найти первую цифру числа n.

10. Дано натуральное n. Удалить из записи числа n цифры 1 и 5, оставив прежним порядок остальных цифр. Например, из числа 59015518 должно получиться число 908.

Вверх

Белорусский рейтинг MyMinsk.com Сайты беларуси Регистр "ЗУБР" Каталог на TIGA.BY, а также  новости, работа, объявления, фото и многое другое Rambler's Top100 Белорусский каталог программ Faststart - рейтинг сайтов, каталог интернет ресурсов, счетчик посещаемос­ти Яндекс.Метрика
Hosted by uCoz