Нахождение среднего арифметического ста чисел

Первая программа, оператор write, writeln

Оператор write и writelnпозволяют выводить на экран информацию, заключенную в одинарные кавычки. Оператор writeln отличается от write тем, что после выполнения переводит курсор на следующую строку.

Пример программы:

Begin

Writeln (‘Privet!’);

End.

% Задание 1

Выведите на экран свою имя, фамилию и отчество

Расположение символов

Рассмотри пример программы:

Begin

Writeln (‘Privet’: 8);

End.

Число 8, записанное после двоеточия, указывает, какое количество позиций отводится под сообщение, выводимое с помощью оператора write. Например, в случае программы, рассмотренной ранее это будет выглядеть так:

    P r i v e t

Если количество отводимых позиций меньше количества символов, то часть символов выводиться не будет.

 

 

% Задание 1

Создайте визитную карточку по образцу.

*******************

* *

* ФИО *

* *

*******************

- Сделайте так, чтобы карточка была выведена в центре экрана.

- Обратите внимание, чтобы ваши данные располагались по центру рамки.

- Попробуйте создать рамку, используя другие символы.

% Задание 2

Используя различные символы, например «*», напишите ими свое имя. Затем попробуйте представить каждую букву своим символом. Добавьте к имени рамку.

 

% Задание 3

Используя различные символы, нарисуйте какую-либо картинку на весь экран

Арифметические операции и выражения

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

Знак операции Название Пример
^ возведение в степень X^Y
* умножение X*Y
/ деление X/Y
+ сложение X+Y
- вычитание X-Y
DIV деление нацело X\Y; 10\4 (ответ: 2)
MOD вычисление остатка от целочисленного деления X MOD Y 10 MOD 3 (ответ: 1)
SQR возведение в квадрат SQR (9) (ответ: 81)
SQRT извлечение квадратного арифметического корня SQRT(36) (ответ: 6)

 

Рассмотрим некоторые арифметические действия, а именно: +, - , *

Пример:

Арифметическое выражение Результат на экране
Writeln (1 + 2 + 3);  
Writeln (‘Summa = ’, 1 +2 + 3);   Summa = 6

Параметры вывода значений:

Параметры вывода значений пишутся через запятую, при необходимости указывается количество позиций через двоеточие.

Например:

Writeln (a, b, c):

Writeln (a:6, b:3, c:1,2); (с:1,2 – используется для вывода десятичных дробей указывает количество позиций для целой и дробной частей)

% Задание № 1 (повторение)

Выведите на экране свое имя, фамилию и отчество. Попробуйте расположить его:

- в правом верхнем углу экрана,

- в левом верхнем углу экрана,

Запишите программу в тетрадь.

% Задание № 2

Выведите на экран

1 = 1

1 + 2 = 3

1 + 2 + 3 = 6

1 + 2 + 3 + 4 = 10, таким образом, чтобы числа, выделенные полужирным курсивом, были получены в результате вычислений.

% Задание № 3

Выведите на экран по образцу, таким образом, чтобы числа, выделенные полужирным курсивом, были получены в результате вычислений.

1 = 1

1 + 2 = 3

1 + 2 + 3 = 6

1 + 2 + 3 + 4 = 10

% Задание № 4

Преобразуйте информацию задания №3 таким образом, чтобы получилось следующее (цифра 6 находится над 0):

1 = 1

1 + 2 = 3

1 + 2 + 3 = 6

1 + 2 + 3 + 4 = 10

% Задание № 5

Выведите на экран по образцу, таким образом, чтобы числа, выделенные полужирным курсивом, были получены в результате вычислений.

1 = 1! 1 = 1

1 + 2 = 3! 1*2 = 2

1 + 2 + 3 = 6! 1*2*3 = 6

1 + 2 + 3 + 4 = 10! 1*2*3*4 = 24

 

Заключите полученный результат в рамку из «*» или других символов на ваше усмотрение.

Введение понятия переменной

Переменная – это специально выделенное место в памяти компьютера.

Имя переменной (идентификатор) – это набор символов, однозначно определяющих переменную, т.е. место на диске.

Типы переменных:

Integer -целые

Real -действительные

String -символьные

Boolean –логические

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

оператор var

Пример:

Var

a:integer;

b:real;

Пример решения задачи: Найти сумму чисел 23 и 48. Вывести сообщение 23 + 48 = 71

Var a,b: integer; begin a:= 23; b:= 48; writeln (’23 + 48 = ‘, 23+48); end.   «:=» - оператор присваивания

% Задание 1

Найдите сумму, разность и произведение чисел 25 и 34, используя оператор присваивания.. Выведите сообщения:

34 – 25 = 9

34 + 25 = 59

34 * 25 = 850

% Задания 2

Найдите сумму, разность и произведение чисел 24 и 13. Добавьте переменные для обозначения суммы, разности и произведения. Выведите результат на экран в рамке.

 

Типы переменных

Типы переменных:

Integer -целые

Real -действительные

String -символьные

Boolean –логические

Ранее известные вам действия позволяли использовать тип переменной integer. Но при делении может получиться нецелое число. В этом случае следует использовать тип переменной real.

% Задание № 1

Найти частное чисел 18 и 9. Вывести сообщение 18 : 9 = 2

% Задание № 2

Найти частное чисел 582 и 39. Вывести сообщение 582 : 39 = 14, 92…

% Задание № 3

Найти частное чисел 249 и 123. Вывести результат в рамке из $.

Операторы деления

 

DIV деление нацело X\Y; 10\4 (ответ: 2)
MOD вычисление остатка от целочисленного деления X MOD Y 10 MOD 3 (ответ: 1)

 

При использовании операторов div и mod результатом является целое число, поэтому следует использовать тип переменной integer.

% Задание № 1

Ø 5 + 5 div 5

Ø 5 div 5 div 5

Ø 123 div 10

Ø 123 mod 10

Ø 123 div 10* 10

Ø 123 * 10 div 10

% Задание № 2

Ø Найдите целую часть и остаток от деления 243 на 15

Ø Найдите целую часть от деления 15 на 4 и умножьте ее на 18

Ø Найдите остаток от деления 13 на 2 , прибавьте к нему 14 и разделите на 3.

Оператор чтения read

Второй способ присваивания значения переменной – с помощью оператора read. С его помощью можно ввести значение переменной с клавиатуры.

Пример:

Var a, b ,c, P: integer;

Begin

Writeln (‘введите длины сторон треугольника’);

Readln( a, b, c);

P:= a + b+ c;

Writeln (‘Периметр треугольника равен’, P);

End.

% Задание № 1

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

% Задание № 2

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

% Задание № 3

Вычислите объем и площадь поверхности параллелепипеда. Длины ребер задаются с клавиатуры.

% Задание № 4

Вычислите длину окружности. Радиус окружности задается с клавиатуры.

% Задание № 5

Найдите сумму, разность и произведение двух чисел, вводимых с клавиатуры. Результат представьте в виде:

************ *A = 5 * *B = 2 * *A + B = 7 * *A – B = 2 * *A * B = 10 * ************

 

% Задание № 6

Вычислите целую часть и остаток от деления двух чисел, введенных с клавиатуры.

% Задание №7

В Канаде может получить гражданство семья, средний возраст которой не превышает 30 лет. Вычислите средний возраст семьи из трех человек. Возраст членов семьи вводится пользователем с клавиатуры.

Оператор условия If…then

Рассмотрим форматы оператора If:

If условие then оператор ; Пример: If a>0 then writeln (`a>0`) ;     If условие then оператор 1 else оператор 2; Пример: If a>0 then writeln (`a>0`) else writeln (`a<0`);  

%

%

%

%

%

%

%

%

%

%

%

%

%

% Практическая работа №6( смешанная)

% Задание № 1

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

% Задание №2

В Канаде может получить гражданство семья, средний возраст которой не превышает 30 лет. Выведите на экран сообщение о том, сможет ли семья получить гражданство. Возраст членов семьи вводится пользователем с клавиатуры.

% Задание № 3

Напишите программу для нахождения корней квадратного уравнения.

% Задание № 4

Напишите программу, которая при вводе с клавиатуры возраста человека, выводит сообщение «Я с тобой дружу», если возраст меньше 17 лет и «Я с тобой не дружу», если меньше 17.

% Задание № 5

Напишите программу, которая определяет существование четырехугольника по градусной мере его углов, вводимых с клавиатуры, и выводит сообщение об этом. (Сумма углов четырехугольника равна 3600).

% Задание № 6

 

%

%

%

%

%

Проверочная работа

Рассмотрите предложенные фрагменты программ. Запишите, какой ответ будет выведен на экран после выполнения этот фрагмента.

Массивы

 

Понятие массивов в программировании даже при написании самых простых программ возникает необходимость в большом количестве переменных. Обычно они разные по типам и по использованию, но бывают ситуации, когда эти переменные одинаковы и их необходимо очень большое количество.

Давайте представим работу такой программы, как нахождение среднего арифметического среди 100 чисел. Что нам понадобиться для написания такой программы? Конечно, сами числа.

Для хранения 100 чисел мы должны использовать 100 переменных. Описать их можно, скажем, следующим образом: var n1,n2,n3,n4,n5, n6,n7, ..., n100: Integer; Это будет выглядеть крайне громоздко.

Вот здесь и возникает понятие массивов.

Массив - это на самом деле одна переменная, но она содержит в себе большое количество отдельных элементов, того типа, который определит программист, и столько, сколько он захочет. (При этом размер массива несколько ограничен). Что это означает? Что заведя переменную-массив мы как бы создаем цепочку переменных. После чего мы можем обратиться к любому элементу этой цепочки: прочитать его, изменить, сделать с ним все, что можно сделать с обычной переменной.

Массив - это переменная и как все переменные описывается в разделе var программы. Описание переменной - массива состоит из: Имени переменной; Служебного слова Array, означающего "массив"; Описания размера массива . Диапазон записывается в квадратных скобках - [ ]. Внутри пишется сам диапазон, в виде двух чисел, разделенных двоeточием: начало..конец. Задание типа начинается со служебного слова of;

Массив - это структура данных, что представляет собой совокупность фиксированного размера и конфигурации упорядоченных однородных независимых переменных.
Массив относится к так называемым структурированным данным, то есть таких, что имеют фиксированную внутреннюю структуру (организацию).
Массив характеризуется:
1. Количеством размерностей (количеством координат, необходимых для определения местонахождения нужного элемента массива).
2. Общим идентификатором (именем) для всех элементов массива.
3. Индексом или совокупностью индексов, которые определяют каждый отдельный елемент масива.
Одномерный массив (вектор) - имеет одну размерность
При обращении к отдельному элементу массива необходимо указать его индекс (местонахождение в массиве):
A[7] i:=7; A[i]
Здесь i - индекс элемента массива, может быть только целого или натурального типа
Двумерные массивы (матричные) - имеют две размерности, m*n. Доступ к отдельному элементу массива осуществляется путем определения двух его координат: номера строки i=1..m и столбца j=1..n
Операции предоставления выполняются аналогично:
a[3,9]=8; B:=A[1,1]
В трехмерном массиве для доступа к элементу необходимо указать три индекса A[i,j,k]. Можно создавать массивы с большей размерностью, но работа с массивами, размерность которых превышает 3, существенным образом усложняет алгоритм, поэтому, по возможности, необходимо избегать организации подобных структур данных.

Сортировка массивов
Методы сортировки можно разбить в соответствии с определяющими их принципами на три основные группы:
1. Сортировка с помощью вставки (by Іnsertіon) или с помощью включения
2. Сортировка с помощью выбора (by Selectіon) или с помощью выделения
3. Сортировка с помощью обмена (by Exchange) или пузырьковая.
Каждая группа имеет прямой метод (самый простой) и улучшенный(усложненный) методы сортировки
I. Сортировка с помощью вставки
Принцип сортировки: массив распределяется на отсортированную и неотсортированную части. На первом шаге за отсортированную часть (последовательность) принимается первый элемент массива. Каждый следующий элемент из неотсортированной части вставляем в заранее отсортированную последовательность так, чтобы эта последовательность оставалась отсортированной.
При этом надо:
1. Найти место, куда нужно вставить этот элемент
2. Сдвинуть элементы, которые стоят справа в отсортированной части на одну позицию вправо.
3. На освобожденное место поставить элемент, который анализируется (вставляется).
Два способа выполнения этих действий:
1) каждый следующий элемент сравнивается с элементами в отсортированной части, находится место вставки, все следующие элементы сдвигаются на одну позицию вправо и после этого вставляется элемент;
2) элемент, который вставляется, последовательно, слева направо, сравнивается с любым из элементов в отсортированной части. Если нужно, элемент в отсортированной части сразу сдвигается на одну позицию вправо. Как только найдено нужное место вставки, элемент, который анализируется, вставляется на нужную позицию.
II. Сортировка с помощью прямого выбора
Принцип сортировки: массив также делится на отсортированную и неотсортированную части. На первом шаге весь массив - неотсортированный. В неотсортированной части находится минимальный (или максимальный) элемент и меняется местами с первым элементом неотсортированной части. Граница отсортированной части сдвигается вправо на 1. Процедура выполняется циклически, n-1 раз (последний элемент передвигать не надо)
III. Сортировка с помощью прямого обмена (пузырьковая)
Принцип сортировки: слева направо поочередно направляется сравнение двух соседних элементов. Если они не упорядочены между собою, то меняются местами. В базовом алгоритме прохождения массива и очередное приведение в порядок повторяются n-1 раз.

ПРИМЕР ПРОГРАММЫ

Нахождение среднего арифметического ста чисел

Program N1;

var M: Array [1..100] of Integer; A: Real; I: Byte;

begin Randomize;

For I := 1 to 100 do M[I] := Random(500);

For I := 1 to 100 do

A := A + M[I];

A := A / 100;

Write('Среднее арифметическое всех чисел массива: ', A);

end.