Программирование в Паскале. Одномерные массивы
Школа №1 Л.М. Поземского
Реферат по информатике
«Программирование в Паскале. Одномерные массивы»
Шепилёв Данила Александрович
Псков, 2012 г.
Оглавление
Введение 3
Глава 1. Язык программирования Free Pascal 5
§1.1 История языка программирования Паскаль 5
§1.2 Язык Free Pascal и его особенности 7
§1.3 Структура и синтаксис программ в паскале 8
§1.4 Операторы в программе Free Pascal 12
§1.5 Цикл For в паскале. 14
Глава 2. Одномерные массивы в Паскале 16
§2.1 Понятие массива. 16
§2.2 Описание одномерного массива. 17
§2.3 Практическая часть. 18
Заключение 21
Список использованной литературы 22
Введение
Развитие современного общества
предполагает широкое использование
компьютерных и информационных технологий,
на основе которых создаются
Компьютерные программы получают результаты, обрабатывая данные. Легкость, с которой выполняется этот процесс, зависит от того, насколько точно типы данных соответствуют реальной задаче. Следовательно, очень важно, чтобы в языке была предусмотрена поддержка соответствующего разнообразия типов и структур данных.
В данной работе будет рассмотрен
тип данных одномерные массивы. С
помощью одномерных массивов можно
решать различные задачи на языке
программирования Паскаль, такие как:
поиск максимального и
Цель работы: рассмотреть использование одномерных массивов в языке программирования Паскаль.
Для достижения цели работы были поставлены следующие задачи:
- Обосновать актуальность данной темы.
- Рассмотреть дополнительную литературу по данной теме
- Рассмотреть особенности программирования в программе Free Pascal
Реферат состоит из введения, двух глав, заключения, списка литературы:
Во введении обоснована актуальность работы, также определены цели и задачи работы.
Первая глава содержит особенности языка программирования Free Pascal.
Во второй главе рассмотрены особенности работы с одномерными массивами в программе Free Pascal.
В заключении приведены общие выводы по работе.
Глава 1. Язык программирования Free Pascal
§1.1 История языка программирования Паскаль
Pascal разрабатывался с 1968 по 1970 г. Николаусом Виртом. Цель заключалась в том, чтобы создать язык, лишенный многочисленных недостатков ALGOL. Pascal был назван в честь французского математика Блеза Паскаля, который еще в 1642 г. изобрел цифровой калькулятор. С конца 70-х до конца 80-х гг. этот язык доминировал среди языков, используемых на начальном этапе обучения программированию; позже его заменили С и C++, а затем Java.
ALGOL 60 был первой попыткой
создания языка на основе
В 1965 г., во время работы в Стенфордском университете (Stanford University), Вирт разработал новую, расширенную версию ALGOL 60 для компьютеров серии IBM 360, в которую вошло определение указателей и структур данных. Этот язык, известный как ALGOLW, использовался в нескольких университетах, но его реализация ограничивалась только компьютерами IBM 360. Для выполнения программ на этом языке требовался значительный по размерам пакет программ поддержки обработки строк, вещественных чисел двойной точности и других сложных типов данных. Таким образом, ALGOL W в качестве системного языка программирования оказался малоэффективным.
В 1968 г. Вирт вернулся в Швейцарию и начал работу над преемником ALGOL W - языком, который мог бы компилироваться за один проход. Для создания исходного компилятора был использован алгоритм рекурсивного спуска. Этот компилятор выполнялся на компьютере Control Data. Также был разработан широко известный теперь интерпретатор Р-кода. Компилятор языка Pascal сначала транслировал исходную программу в программу на языке гипотетической машины со стековой архитектурой. Благодаря такой своей организации Pascal легко переносился на компьютеры других систем.
Язык Pascal развивался и совершенствовался, включал в себя новые возможности. Производились новые компиляторы и среды разработки для Pascal.
Наличие специальных методик
создания компиляторов с Паскаля
упростило их разработку и способствовало
широкому распространению языка. Компиляторы
могли оптимизировать код, и это
позволяло создавать
В 80-х годах компьютерная наука начала входить в массы, появился предмет «Информатика». Поскольку в это время Pascal был особо модным и зарекомендовал себя как учебный языка, то он нашел широкое распространение в школах и вузах.
§1.2 Язык Free Pascal и его особенности
Free Pascal - это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами
Достоинств языка
- Свободное распространение.
- Простота языка позволяет быстро его освоить и создавать алгоритмически сложные программы.
- Развитые средства представления структур данных обеспечивают удобство работы как с числовой, так с символьной и битовой информацией.
- В языке Паскаль реализованы идеи структурного программирования, что делает программу наглядной и дает хорошие возможности для разработки и отладки.
§1.3 Структура и синтаксис программ в паскале
Структура программ на языке Pascal напоминает программы на С. Тем не менее в Pascal предусмотрена возможность описания внутренних локальных процедур и создания вложенной иерархии имен. Программа на Pascal представляет собой единый программный блок, в котором содержатся определения используемых подпрограмм. Программа на языке PASCAL состоит из: Заголовка и Блока программы.
Блок содержит: Раздел описания и Раздел операторов.
Программы на Паскале начинаются с ключевого слова program и следующего за ним имени программы с точкой с запятой (в некоторых диалектах является необязательным), за именем может в скобках следовать список внешних файловых дескрипторов в качестве параметров; за ним следует тело программы, состоящее из секций описания переменных, типов и констант, объявлений процедур и функций и следующего за ними блока операторов, являющегося точкой входа в программу. В языке Паскаль блок ограничивается ключевыми словами begin и end. Операторы разделяются точками с запятой, после тела помещается точка, служащая признаком конца программы. Регистр символов в Паскале не имеет значения.
Таким образом, простейшая программа
на Паскале будет выглядеть
program <имя программы>;
const …;{константы}
var …; {типов переменных}
begin
… {основная программа}
end.
Программа не выполняет никаких действий и содержит пустой блок операторов.
Пример программы, выводящей строку «Hello, World!»:
program HelloWorld;
begin
writeln('Hello, World!') { оператор вывода строки }
end.
Блок программы состоит из шести разделов, следующих в строго определенном порядке:
- раздел меток (label)
- раздел констант (const)
- раздел типов (type)
- раздел переменных (var)
- раздел процедур и функций
- раздел действий (операторов).
Раздел действий должен присутствовать всегда, остальные разделы могут отсутствовать.
Каждый из первых четырех разделов начинается с соответствующего ключевого слова (label, const, type, var), которое записывается один раз в начале раздела и отделяется от последующей информации только пробелом, либо концом строки, либо комментарием.
Раздел меток (label)
Любой выполняемый оператор может быть снабжен меткой – целой положительной константой, содержащей не более 4-х цифр. Все метки, встречающиеся в программе, должны быть описаны в разделе label.
Общий вид:
label l1, l2, l3…;
здесь l1, l2, l3 – метки.
Пример. label 5, 10, 100;
Метка отделяется от оператора двоеточием.
Пример. Пусть оператор a := b имеет метку 20. Тогда этот оператор выглядит так:
20: a := b;
Раздел констант (const)
Если в программе используются константы, имеющие достаточно громоздкую запись (например, число пи с 8-ю знаками), либо сменные константы (для задания варианта программы), то такие константы обычно обозначаются какими-либо именами и описываются в разделе const, а в программе используются только имена констант. Это делает программу более наглядной и удобной при отладке и внесении изменений.
Общий вид:
const a1 = c1; a2 = c2; …
здесь a1 – имя константы, c1 – значение константы.
Пример. const pi = 3.14; c = 2.7531;
Раздел типов (type). Если в программе вводится тип, отличный от стандартного, то этот тип описывается в разделе type:
type t1 = вид_типа;
t2 = вид_типа;
где t1 и t2 – идентификаторы вводимых типов.
Пример. type color = (red, yellow, green, blue);
Здесь описан тип color, задаваемый перечислением значений.
Раздел переменных (var)
Пусть в программе встречаются переменные v11, v12,…; все они должны быть описаны следующим образом:
var v11, v12,…: type1;
v21, v22,…: type2; …
здесь v11, v12,… - имена переменных; type1 – тип переменных v11, v12,…; type2 – тип переменных v21, v22,….
Пример. var k, i, j: integer; a, b: real;
Каждая переменная должна быть описана до ее использования в программе и отнесена к одному и только одному типу. Названия разделов (const, type, var…) указываются только один раз.
Пример.
var a: real;
b: real;
Таким образом, в разделе var вводится имя каждой переменной и указывается, к какому типу эта переменная принадлежит. Тип переменной можно задать двумя способами: указать имя типа (например, real, color и т.д.), либо описать сам тип, например: array[1..16] of char
Раздел процедур и функций
Здесь присутствуют заголовки и тела пользовательских процедур и функций.
Раздел действий (операторов)
Эта часть программы начинается с ключевого слова begin и заканчивается словом end, после которого должна стоять точка. Раздел действий есть выполняемая часть программы, состоящая из операторов.
§1.4 Операторы в программе Free Pascal
Рассмотрим несколько групп операторов в Паскале:
- Оператор присваивания;
- Операторы ввода и вывода;
- Условный оператор;
Оператор присваивания служит для изменения значения переменной. В Паскале знак присваивания выглядит так :=
Оператор присваивания записывается в соответствии с общим правилом: <имя переменной> := <выражение>;
Например: Х:=А, где X —переменная, А — выражение.
Арифметическое выражение может включать:
- константы
- имена переменных
- знаки арифметических операций
- вызовы функций
- круглые скобки ( )
Решение самой простой задачи на компьютере не обходится без операторов ввода-вывода информации. Ввод данных - это передача информации с внешнего носителя в оперативную память для обработки. Вывод - обратный процесс, когда данные передаются после обработки из оперативной памяти на внешний носитель.
Процедура чтения READ.
Обеспечивает ввод числовых
Read (x1, x2, ..., xN);
Readln (x1, x2, ..., xN);
Где х1, х2, ... - переменные допустимых типов данных. Эти значения вводятся с клавиатуры и отображаются на экране. Значения должны вводится в строгом соответствии с синтаксисом языка Паскаль.
Процедура чтения Readln аналогична процедуре Read, отличие заключается в том, что после считывания в списке одного значения, следующие данные будут считываться с начала новой строки.
Процедура записи WRITE. Производит вывод числовых данных, символов, строк и т.п. Формат:
Write (y1, y2, ...,yN);
Writeln (y1, y2, ..., yN);
Например: writeln ( 'Привет!' ); выведет на сообщение Привет!
Условный оператор. Одной из основных алгоритмических структур является ветвление.
Если условие выполняется, то будет выполнена инструкция "1", если нет, то - инструкция "2". Несмотря на то, что в схеме присутствуют два действия, выполнено будет только одно, так как условие либо ложно, либо истинно. Третьего не дано. Такая схема позволяет решать задачи, в которых в зависимости от сложившихся обстоятельств требуется совершить то или иное действие.
Формат условного оператора
на языке Паскаль:
If <условие> Then <оператор 1>
Else <оператор 2>;
Например: if a>0 then a:=a+1
Else read(a);
§1.5 Цикл For в паскале.
При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.
Цикл for. Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).
В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.
Цикл for существует в двух формах:
for счетчик:=значение to конечное_значение do
тело_цикла;
for счетчик:=значение downto конечное_значение do
тело_цикла;
Если между начальным и конечным выражением указано слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.
Глава 2. Одномерные массивы в Паскале
§2.1 Понятие массива.
Представьте такую ситуацию,
когда вам необходимо оперировать
с несколькими однородными
Массив – структура однотипных данных с индексированным доступом. Каждый элемент массива получает один или несколько номеров, называемых индексами. Индексы записываются в квадратных скобках через запятую.
Массивы бывают следующих видов:
- Одномерные – каждый элемент массива получает два индекса.
- Многомерные – каждый элемент получает более 2-х индексов.
Одномерным массивом называется упорядоченная совокупность однотипных элементов, обозначенных каждая одним и тем же именем с различными целочисленными индексами, изменяющимися по порядку. Представим что у нас есть переменные a,b,c,d,e,f и все они одного типа integer. Довольно нерационально прописывать каждую переменную в отдельности, тем более ,если их например больше 100. Гораздо удобнее взять один массив, который и будет содержать в себе все эти элементы. Одномерный массив по сути является такой же переменной, только содержащей в себе вложения в виде других переменных.
§2.2 Описание одномерного массива.
Объявляется он также в разделе var и выглядит так.
var имя массива : Array [диапазон значений] Of базовый тип;
Имя массива - здесь любое
имя, как и у переменной, не считая
зарезервированных (таких как read,
write, for, do, if, then и других). Диапазон значений
- тут количество значений ,которое задается
например от 1 до 100
базовый тип - любой тип данных, который
будет применен для каждого элемента массива,
например integer.
Например var a:array [1..30] of integer;
Порядковый номер элемента
массива называется индексом эт
Индексы элементов массива обычно целые числа, однако могут быть и символами, а также описываться другими порядковыми типами. Т.е. для индекса можно использовать тип, в котором определена дискретная последовательность значений, и все эти значения можно пересчитать по порядку. Индексировать можно как константами и переменными, так и выражениями, результат вычисления которых дает значение перечислимого типа.
Если индекс массива может
приобретать все допустимые значения
определенного перечислимого
Обратиться к элементу массива можно используя следующую структуру a[номер в диапазоне массива].
§2.3 Практическая часть.
Пример 1: Написать программу, которая сначала должна обеспечить ввод 10 чисел в одномерный массив, затем вычислить их сумму и вывести ее на экран.
Program mas1;
Var i: integer;
Sum : real;
M : array [1..10] of Real;
begin
For i:=1 to 10 do begin
write (‘введите элемент массива');
readln(m[i]); end;
sum:=0;
For i:=1 to 10 do
Sum:=sum+m[i];
Writeln (‘Сумма элементов= ’,sum);
readln;
end.
Пример 2: Написать программу, которая определяет минимальный элемент массива.
Program mas2;
Var i: integer;
min : real;
M : array [1..10] of Real;
begin
For i:=1 to 10 do begin
write (‘введите элемент массива');
readln(m[i]); end;
min:= m[1];
For i:=2 to 10 do
If m[i]>min then min:= m[i];
Writeln (‘Минимальный элемент массива= ’,min);
readln;
end.
Пример 3: Подсчитать количество положительных элементов одномерного массива.
Program mas3;
Var i,j,n: integer;
M : array [1..10] of Real;
begin
For i:=1 to 10 do begin
write (‘введите элемент массива');
readln(m[i]); end;
n:=0;
For i:=1 to 10 do
If m[i]>0 then n:=n+1;
Writeln (‘Положительных элементов ’, n);
readln;
end.
Пример 4: Сортировка элементов массива. Методом пузырька.
Модель сортировки рассмотрим
на примере восьми целых чисел, которые
расположим в первом вертикальном столбце.
Вертикальное расположение сортируемого
массива наглядно иллюстрирует «всплывание
легких элементов (чисел) вверх к
поверхности» по мере сортировки массива.
Элементы массива рассматриваются попарно
снизу-вверх. Если нижний элемент меньше,
то они меняются местами. При первом просмотре
(проходе) самый «легкий» элемент оказывается
самым верхним. Поэтому при втором просмотре
его можно уже не рассматривать. В таблице
стрелками показаны перемещения элементов
массива после каждого прохода.
Program mas4;
Var i,j,l: integer;
M : array [1..10] of integer;
Begin
write (‘введите элементы массива');
For i:=1 to 10 do begin
readln(m[i]); end;
For i:=1 to 10 do
For j:=10 downto 2 do
If m[j-1]>m[j] then begin
L:= m[j-1];
m[j-1]:=m[j];
m[j]:=L; end;
For i:=1 to 10 do Writeln (m[i]);
readln;
end.
Заключение
Управлять компьютером и сдавать программы может любой человек. Для создания компьютерных программ не нужно обладать невероятным интеллектом или ученой степенью в математических дисциплинах.
Умение писать программы — это такое же умение, как и умение, плавать, танцевать или жонглировать. Несмотря на то, что компьютеры кажутся очень сложными электронными машинами, практически любой может научиться создавать программы, не вдаваясь в подробности о том, как именно работает компьютер.
Рассмотрев дополнительную литературу, изучив особенности работы с одномерными массивами на языке программирования Free Pascal, мною был разработан реферат «Программирование в Паскале. Одномерные массивы».
Мною были рассмотрены такие вопросы как история языка программирования паскаль, структура и синтаксис программ, типы переменных на языке Free Pascal, операторы и циклы, а так же тип данных массив, способ задания массива, операции над массивами. Более пристальное внимание было отведено практической части, были рассмотрены различные задачи которые можно легко реализовать, используя одномерные массивы.
Самая большая проблема, с которой я столкнулся, в процессе выполнения работы заключалось в том, что язык программирования Free Pascal разработан относительно недавно и дополнительной литературы, а именно печатных источников, по нему разработано не много.
Проанализировав проделанную работу, считаю цель работы достигнутой, а поставленные задачи выполнены.
Список использованной литературы
- Алексеев Е.Р. Самоучитель по программированию на Free Pascal и Lazarus / Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. - Донецк.: ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2009. - 503 с.
- Моисеев Л.- Полный справочник школьника 5-11 класс, / Моисеев Л., Бедрина Е., Панин Д., – М.: Владис, 2012г. 768 с.: ил.
- Потопахин В.В. Turbo Pascal: решение сложных задач. Издательство "БХВ-Петербург", 2006, 208 с.
- Угринович Н.Д. Информатика и ИКТ. Учебник для 9 классов. – М.: БИНОМ. Лаборатория знаний, 2009. – 295 с.: ил.
- Ускова О.Ф. Программирование на языке Паскаль. Задачник. . – СПб.: Питер, 2009. – 336 с.: ил.
- Фаронов В.В. Turbo Pascal 7.0 Начальный курс. – Изд.: "ОМД Групп" 2008, 577 с.
- Шпак Ю.А. Turbo Pascal 7.0 на примерах. – Изд. "Юниор", 2008, 498 с.
- Freepascal.ru Информационный портал для разработчиков [Электронный ресурс]. – Режим доступа: http://www.freepascal.ru/, свободный. – Загл. с экрана. - Яз. рус.
- Программирование как часть кибернетики
- Программирование линейных алгоритмов
- Программирование линейных алгоритмов
- Программирование микрокомпьютера. Общая информация
- Программирование на HTML
- Программирование на Turbo Pascal
- Программирование на VBA. Оптимизация приложений
- Программа формирования универсальных учебных действий у обучающихся на ступени начального общего образования
- Программа экономических и политических преобразований С.Ю. Витте
- Программирование
- Программирование
- Программирование
- Программирование арифметических выражений и построение кусочного графика функции с помощью среды MATLAB
- Программирование в Delphi