10 класс

Урок 4. Структурированный тип данных массив

Цель урока: изучить решение задач с использованием ввода-вывода массивов.


 

Форматный вывод

Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:

 WRITE(<переменная>:m:n); 

где:

m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; 

n – целое число, определяющее количество цифр дробной части.

Выводимая информация выравнивается по левому краю. При этом подавляется печать ведущих нулей, т.е. если для вывода числа было выделено четыре позиции, то на экран монитора будет выведено, например, 6, а не 0006 .

Пример. Выведем значение переменной A, равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:

 Символом  обозначен пробел.

Вывод вещественных чисел выполняется по следующим правилам:

  1. Если число имеет меньшую длину, чем m, то оно будет дополнено слева пробелами.
  2. Если число имеет большую длину, чем m, то параметр m игнорируется и число будет выведено полностью.
  3. Если дробная часть больше, чем параметр n, то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
  4. Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.

Задания по теме урока

  1. Напишите программу, которая позво­ляет вводить с клавиатуры целочисленные элементы массива a[1..10], а затем выводит на экран в первую строку первые пять элементов массива, во вторую — остальные пять элементов.
  2. Сформировать и вывести на экран массив a[1..10], элементы которого заданы датчиком случайных чисел на интервале от номера компьютера до 100. Вывести элементы массива в обратном порядке в строку через запятую. (Указание: цикл for … downto …)
  3. Напишите программу, которая позво­ляет вводить с клавиатуры вещественные элементы массива a[1..10], а затем выводит на экран значения в одну строку, отводя на каждое значение по 4 позиции.
  4. Элементы массива содержат значения температуры тела больного в течение недели. Составьте программу, которая заполняет массив случайными вещественными числами от 37.0 до 38.0 и выводит на экран значения температуры в столбец с одной десятичной цифрой.
  5. В течение недели температура составляла 15, 18, 18, 16, 19, 20, 17 градусов. Составьте программу, в которой описан массив констант и выводит значения температуры по дням в следующем виде:
1-й день: температура воздуха 15 градусов.
2-й день: ... и т.д.
Дополнительное задание
  • Установите соответствие

Домашнее задание

§ 3.5 учебного пособия, ответить на вопросы после параграфа.

Примеры решения задач

Пример 1. Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].

Program posled;
Var a: array[1..100] of integer;
      i, n: integer;
Begin
  Write ('Сколько элементов? ');
  Readln (n);
   For i:=1 to n do
       begin                       // Диапазон чисел на промежутке [a,b] 
            a[i]:= Random(58)-23;  // задается формулой: random(b-a+1)+a;
             writeln (a[i],' ');
       end;
End.

Пример 2. Изменим программу из Примера 1 так, чтобы на экран выводились элементы массива в обратном порядке (цикл for … downto …)

Program obrposled;
Var a: array[1..100] of integer;
      i, n: integer;
Begin
  Write ('Сколько элементов? ');
  Readln (n);
   For i:=n downto 1 do
       begin      
            a[i]:= Random(58)-23;
             writeln (a[i],' ');
       end;
End.

Пример 3. Cмировать и вывести на экран последовательность из n вещественных элементов, заданных датчиком случайных чисел на интервале [40.0, 41.0).

Program realposled;
Var a: array[1..100] of real;
      i, n: integer;
Begin
  Write ('Сколько элементов? ');
  Readln (n);
   For i:=1 to n do
       begin                       // Функция Random без аргумента генерирует случайные
            a[i]:= 40+Random;      // вещественные числа на промежутке [0,1)
             writeln (a[i],' ');   // т.о. случайное число из промежутка [z, z+1)
       end;                        // получаем по формуле z+random;
End.

Пример 4. В качестве примера рассмотрим печать вещественного числа в различных форматах.

program write;
var
  x: real;
begin
  x := -12345.12345;
  writeln('Печать вещественного числа':50);
  writeln('Форматированный вывод:');
  writeln(x:3:0);
  writeln(x:3:1);
  writeln(x:12:5);
  writeln(x:20:5);
end.
свернуть

Урок 3. Структурированный тип данных массив

 

Цель урока: изучить понятие массива, описание массивов, операции над массивами, ввод и вывод элементов массива.


Массив – совокупность переменных, имеющих общее имя и тип и отличающихся друг от друга порядковым номером (индексом).

Описание массива в Паскале (объявление) и обращение к его элементам происходит следующим образом:

Например:

Var
a:array[1..10] of integer; {массив из 10 целых чисел с именем а и индексами от 1 до 10}
mas:array[1..20] of real; {массив из 20 вещ. чисел с именем mas и индексами от 1 до 20}
t:array[1..365] of real; {массив из 365 вещ. чисел с именем t и индексами от 1 до 365}
b:array[20..30] of integer; {массив из 11 целых чисел с именем b и индексами от 20-30}

Инициализация массива

Кроме того, массив может быть сам константным, т.е. все его элементы в программе заранее определены. Описание такого массива выглядит следующим образом:

const a:array[1..4] of integer = (1, 3, 2, 5);

Заполнение массива значениями, вводимыми с клавиатуры:

for i:=1 to n do
   read(a[i]);

Вывод элементов массива:

for i := 1 to 5 do
    write(a[i]); {вывод элементов массива}

Функция генерации случайных чисел Random в Pascal подробно рассмотрена в Уроке 1.

Пример: Заполнение массива случайными числами в Pascal:

var f: array[1..10] of integer;
    i:integer;
begin
randomize;
for i:=1 to 10 do
  begin
   f[i]:=random(10); { интервал [0,9] }   
   write(f[i],' ');
  end;
end.

Задания по теме урока

Задание 1. Разберите программу ввода с клавиатуры элементов массива целых чисел а [1..10] и вывода элементов массива на экран в одну строку. Затем выполните эту программу на компьютере.

Var a:array[1..10] of integer; 
    i:integer; 
Begin
  {Ввод элементов массива}
  For i:=1 to 10 do 
      read(a[i]);
  {Вывод элементов массива}
  For i:=1 to 10 do 
    write(a[i] ,' ');
End.

Задание 2. Напишите программу, которая осуществляет ввод массива из 5 вещественных чисел с клавиатуры, а затем выводит элементы массива на экран дважды – сначала в строку, потом в столбец.

Задание 3. Напишите программу, которая осуществляет ввод массива целых чисел а [1..10] с клавиатуры, а затем выводит на экран элементы массива с четным индексом в строку.

Задание 4. Напишите программу, которая осуществляет заполнение массива массива целых чисел а [1..10] случайным образом, а затем выводит на экран элементы нечетные элементы массива в строку.

Задание 5. Напишите программу, которая осуществляет ввод массива целых чисел а [1..10] с клавиатуры, а затем выводит на экран элементы массива элементы массива, которые являются четными положительными числами.

Например:

Элементы массива: 1 -2 6 4 5 -6 -2 8 9 10

Результат выполнения программы: 6 4 8 10

Дополнительное задание

Домашнее задание

§ 3.1-3.4 учебного пособия, ответить на вопросы после параграфа.

свернуть

Урок 2. Структурированный тип данных массив

 

Цель урока: изучить понятие массива, описание массивов, операции над массивами, ввод и вывод элементов массива.


Массив – совокупность переменных, имеющих общее имя и тип и отличающихся друг от друга порядковым номером (индексом).

Описание массива в Паскале (объявление) и обращение к его элементам происходит следующим образом:

Например:

Var
a:array[1..10] of integer; {массив из 10 целых чисел с именем а и индексами от 1 до 10}
mas:array[1..20] of real; {массив из 20 вещ. чисел с именем mas и индексами от 1 до 20}
t:array[1..365] of real; {массив из 365 вещ. чисел с именем t и индексами от 1 до 365}
b:array[20..30] of integer; {массив из 11 целых чисел с именем b и индексами от 20-30}

Инициализация массива

Кроме того, массив может быть сам константным, т.е. все его элементы в программе заранее определены. Описание такого массива выглядит следующим образом:

const a:array[1..4] of integer = (1, 3, 2, 5);

Заполнение массива значениями, вводимыми с клавиатуры:

for i:=1 to n do
   read(a[i]);

Вывод элементов массива:

for i := 1 to 5 do
    write(a[i]); {вывод элементов массива}

Функция генерации случайных чисел Random в Pascal подробно рассмотрена в Уроке 1.

Пример: Заполнение массива случайными числами в Pascal:

var f: array[1..10] of integer;
    i:integer;
begin
for i:=1 to 10 do
  begin
   f[i]:=random(10); { интервал [0,9] }   
   write(f[i],' ');
  end;
end.

Задания по теме урока

Задание 1. Разберите программу ввода с клавиатуры элементов массива целых чисел а [1..10] и вывода элементов массива на экран в одну строку. Затем выполните эту программу на компьютере.

Var a:array[1..10] of integer; 
    i:integer; 
Begin
  {Ввод элементов массива}
  For i:=1 to 10 do 
      read(a[i]);
  {Вывод элементов массива}
  For i:=1 to 10 do 
    write(a[i] ,' ');
End.

Задание 2. Напишите программу, которая осуществляет ввод массива из 5 вещественных чисел с клавиатуры, а затем выводит элементы массива на экран дважды – сначала в строку, потом в столбец.

Задание 3. Напишите программу, которая осуществляет ввод массива целых чисел а [1..6] с клавиатуры, а затем выводит на экран элементы массива с четным индексом в строку.

Задание 4. Напишите программу, которая осуществляет вывод значений массива целых чисел а [1..10] в обратном порядке. Массив заполняем случайными значениями в интервале от 0 до 9.

Дополнительное задание

Домашнее задание

§ 3.1-3.4 учебного пособия, ответить на вопросы после параграфа.

свернуть

Урок 1. Алгоритм и его свойства

Цель урока: изучить понятие алгоритма и его свойства.


 

Повторите основные алгоритмически конструкции языка Pascal.

Общий вид программы раздел подключения модулей;
раздел описаний;
begin
операторы
end.
Раздел описаний var имя переменной: тип переменной;
Типы данных integer — целые;
byte — целые (от 0 до 255) ;
real — вещественные;
boolean — логические;
char —символьные;
string — строковые
Команды вывода write (список вывода);
writeln (список вывода);
Команды ввода read (список ввода);
readln (список ввода);
Команда присваива­ния имя переменной := выражение;
Составной оператор begin
оператор 1;
оператор 2;

end;
Команда ветвления Полная форма:
if условие then оператор 1
else оператор 2;
Сокращенная форма:
if условие then оператор;
Команда цикла с предусловием while условие do оператор;
Команда цикла с параметром for i := A to В do оператор;
for i := A downto В do оператор;

Для операций div и mod выполняются эти же правила, но операнды могут быть только целыми. Правила вычисления операций div и mod – следующие:

div y – результат целочисленного деления x на y.
mod y – остаток от целочисленного деления x на y.

Генерация случайных чисел: Функция Random в Pascal

Пример. Разберите и выполните на компьютере программу, генерирующую случайное трехзначное число, оканчивающееся на нуль.

Указание:

  • random(900) генерирует случайное число от 0 до 899. Если прибавить к числу 100, то получится диапазон от 100 до 999 включительно, т. е. все трехзначные числа;
  • чтобы получить случайное трехзначное число, оканчивающееся на нуль, можно вычесть из числа последнюю цифру (число единиц).

Программа может выглядеть так:

var n: integer;
begin
n := random(900) + 100;
if n mod 10 <> 0 then n := n - n mod 10;
writeln(n);
end.

Задания по теме урока

Задание 1. Составьте программу, которая генерирует случайное четырехзначное число от 1000 до 9999 (номер автобусного билета), выводит его на экран и определяет, является ли билет «счастливым» (сумма первых двух цифр равна сумме последних двух цифр).

Задание 2. Дано трехзначное число (генерируем число случайно). Определить:

  • является ли сума его цифр двузначным числом
  • является ли произведение его цифр трехзначным числом

Задание 3. Даны два числа: однозначное число А и двухзначное число В. Числа вводим с клавиатуры. Определить:

  • больше ли числа A произведение цифр числа В
  • кратна ли сумма цифр числа B числу A (т.е. остаток от деления равен нулю)

Домашнее задание

§ 1 учебного пособия, ответить на вопросы после параграфа.

свернуть