Автор работы: Пользователь скрыл имя, 17 Февраля 2015 в 18:12, реферат
Мы привыкли считать, что программирование - дитя современного прогресса в области науки и технологии. Но это не совсем так. Первые сложные многоцелевые вычислительные устройства появились ещё в XIX веке. Тогда же возникла необходимость в разработке программ для них, и впервые с такой задачей столкнулась Ада Лавлейс, работавшая с вычислительной машиной Чарльза Бэббиджа, которая называлась "Машина для исчисления разностей".
Паскаль. История создания и развития языка программирования.
Мы привыкли считать, что программирование
- дитя современного прогресса в области
науки и технологии. Но это не совсем так.
Первые сложные многоцелевые вычислительные
устройства появились ещё в XIX веке. Тогда
же возникла необходимость в разработке
программ для них, и впервые с такой задачей
столкнулась Ада Лавлейс, работавшая с
вычислительной машиной Чарльза Бэббиджа,
которая называлась "Машина для исчисления
разностей". Но настоящие языки программирования
появились всё-таки в эпоху электронных
вычислительных машин. Считают, что первый
язык программирования - это язык Short Code,
появившийся в 1949 году.
Первыми языками программирования высокого
уровня были Фортан, Кобол, Алгол, появившиеся
в 50-е года XX века. В настоящее время насчитывается
несколько тысяч языков программирования,
большая часть из которых имеет узкую
специализацию.
Особое место среди языков программирования занимает
Алгол, первая версия которого появилась
в 1958 году. Одним из разработчиков Алгол
был Джон Бэкус. Название языка Algorthmic Language
подчёркивает то, обстоятельство, что
он предназначен для записи алгоритмов.
Благодаря чёткой логической структуре
АЛГОЛ стал стандартным средством записи
алгоритмов в научной и технологической
литературе. Последующими версиями языка
стали Алгол 60 и Алгол 68.
В 1967 году Никлаус Вирт создал свою версию
АЛГОЛ W. Это было связано с необходимостью
найти такой язык программирования, который
можно было бы использовать для обучения
студентов методам разработки программ,
таким как "программа сверху вниз",
"структурное программирование"
и т.п. Вирту не понравился не один из существующих
на сегодняшний момент языков, и в 1968 году
он приступил к разработке своего собственного.
В 1970 году в мире программирования произошли
по крайней мере два великих события -
появились операционная система UNIX и новый
язык программирования. Вирт назвал его
в честь великого французского математика
и философа XVII века Блеза Паскаля. Паскаль
изобрёл вычислительное устройство, именно
поэтому новому языку было присвоено его
имя. Вирт настаивал впоследствии, что
названия языка должно начинаться с заглавной
буквы как фамилия. Первая версия языка
была создана для компьютера CDC 6000.
Благодаря своей чёткости, логичности
и другим особенностям Паскаль надолго
занял свою нишу, являясь прекрасным языком
для обучения программированию. Паскаль
использовался и для разработки серьёзных
программ - приложений.
Тем не менее, первоначально язык обладал
множеством недостатков: невозможность
передачи функциям массивов переменной
длины, отсутствие нормальных средств
работы с динамической памятью, ограниченная
библиотека ввода - вывода, отсутствие
средств для подключения функций написанных
на других языках, отсутствие средств
раздельной компиляции и т.д. Необходимо
заметить, что многие перечисленные недостатки
языка не проявляются или даже становятся
достоинствами при обучении программированию.
Впоследствии появились различные версии
языка и его расширения. Наиболее известным
расширением стал пакет Турбо Паскаль
фирмы Borland, появившийся в 1983 году и сразу
ставший событием в мире компьютерных
технологий. Пакет предназначался для
операционной системы CP/M. В начале 1984 года
он был перенесён в среду MC-DOS и приобрёл
огромную популярность. С тех пор появилось
несколько версий Турбо Паскаля.
В настоящее момент пользуются популярностью
такие версии языка как TMT Pascal, Free Pascal и GNU
Pascal. Продолжает использоваться и Borland
Pascal. Развитием языка Borland Pascal является
Object Pascal - версия Паскаля, расширенная
средствами объектно-ориентированного
программирования. Последняя версия Borland
Pascal лежат в основе среды программирования
Delphi.
отсутствие надежных средств для работы с динамической памятью
Операторы Pascal
Оператор (англ. statement) — наименьшая автономная
часть языка программирования Pascal; команда. Программа представляет
собой последовательность операторов.
В Pascal
программа состоит из нескольких частей,
блоков. Первый из них – это заголовок,
затем идут раздел описаний и тело программы.
Заголовок – необязательная часть, содержащая
название программы, которое задаётся
служебным словом PROGRAM.
Раздел описаний состоит из нескольких более мелких подразделов: раздел подключаемых библиотек (модулей), раздел описания меток, раздел описания констант, раздел описания типов, раздел описания переменных, раздел описания процедур и функций.
Раздел описания модулей определяется служебным словом USES и содержит имена подключаемых модулей (библиотек). Раздел описания модулей должен быть первым среди разделов описаний.
В разделе описания переменных необходимо определить тип всех переменных, используемых в программе. Объявление переменны происходит с помощью служебного слова VAR. Тип переменной пишется через двоеточие после названия переменной. (Таблица № 1)
Далее следует раздел описания процедур и функции. В разделе размещаются тела подпрограмм. Подпрограммой называется программная единица, имеющая имя, по которому она может быть вызвана из других частей программы. В языке Pascal роль подпрограмм выполняют процедуры и функции. В общем случае подпрограмма имеет ту же структуру, что программа. Для описания подпрограмм используются зарезервированные слова PROCEDURE и FUNCTION, которые записываются в начале подпрограммы.
После раздела описаний следует основная часть программы – раздел операторов. Раздел операторов представляет собой составной оператор, который содержит последовательность операторов между служебными словами BEGIN и END.
Все операторы и служебные слова отделяются друг от друга символом " ; ". Текст программы заканчивается точкой.
Основные
операторы:
:= - оператор присвоения значения переменной
Read - оператор считывания
данных из файла или посредством ввода
с клавиатуры. Readln после чтения переводит
строку.
Write – оператор вывода данных на экран
или в файл. Writeln переводит строку после
вывод.
If…then…else… – условные операторы “Если”, ”То”, ”Иначе”.
После if пишется условие,
в случае, если условие верно, срабатывает
оператор, написанный после then, если же условие
неверно, то срабатывает оператор, поставленный
после else. Else является
необязательной частью, в случае его отсутствия
происходит выполнение оставшейся части
программы.
While... do… - цикл с предусловием. Пока верно
условие после while (сначала
происходит проверка условия, и только
потом идёт выполнение цикла), выполняется
оператор после do.
Repeat … until … - цикл с постусловием.
В отличие от цикла с предусловием после repeat пишется
оператор, после until условие,
проверка условия происходит только после
выполнения цикла.
For i:=1 to j do … - цикл
со счётчиком. Оператор после do выполняется j раз. i увеличивается
на единицу до тех пор, пока не станет равно j. После этого
цикл закончится.
Решение задач
Первым шагом для решения любой
задачи является составление блок-схемы
или алгоритма, по которому будет работать
программа. И только затем переведение
алгоритма или блок-схемы в служебные
слова и операторы, используемые в Pascal.
В данной работе я буду рассматривать
решение задач из Учебника по Информатике
за 9 класс.
1.“Cоставьте программу
для вычисления необходимой массы соли
и воды массой m г и концентрацией w
%”
Для решения данной задачи нам понадобится,
во-первых, считать данные, чтобы узнать
чему равны m и w; во-вторых, используя формулу,
посчитать массу ингредиентов.
program S78N24;
//Необязательная часть программы – Заголовок.
var m, w, ms, mv:real; //За m обозначим массу всего раствора, за w концентрацию, за ms – массу соли, за mv – массу воды.
begin
read(m,w); //Считываем данные
mv:=m*(w/100); //Находим w процентов от массы всего раствора m. Полученный результат является массой соли, используемой в растворе.
mv:=m-w; //Т.к. раствор состоит лишь из двух составляющих, находим неизвестное слагаемое, отняв от суммы известное слагаемое. Полученный результат будет являться массой воды в растворе
write(‘Масса соли = ',ms:5:5,'; Масса воды = ',mv:5:5); //выводим результаты
read(m); //задерживаем окно на экране до нажатия клавиши.
end.
2.“Подсчитайте количество целых чисел среди a, b и с”
Чтобы решить эту задачу составим
блок-схему.
Чтобы определить целое ли введенное число,
можно использовать функцию FRAC, которая возвращает
дробную часть числа. Если функция вернёт
0, то число не имеет дробной части, т.е.
целое.
program S114N30;
var a:real; n:integer; // Т.к. введённые числа нам больше не понадобятся, они будут записываться в одну переменную. Это сократит память, используемую программой.
Begin
n:=0; //В n будет записываться количество целых чисел
readln(a);
if frac(a)=0 then inc(n); //По очереди проверяем каждое из чисел, если число целое, увеличиваем n
readln(a);
if frac(a)=0 then inc(n);
readln(a);
if frac(a)=0 then inc(n);
write(n);
read(a);
end.
3. Составьте программу,
проверяющую, верно ли утверждение, что
сумма цифр введенного целого числа является
чётной.
program S112N13;
var a,c:integer; //Для решения понадобятся две переменные. В а будет записано начальное число. В c будет записана сумма цифр.
begin
readln(a);
c:=0;
while a>0 do //Чтобы найти сумму цифр я использую цикл.
begin
c:=c+(a mod 10); //К сумме цифр добавляется остаток от деления на 10. Т.е. добавляется сначала первый разряд(единицы), затем следующий(десятки) и т.д. до тех пор, пока число не перестанет делиться на 10.
a:=a div 10;
end;
if (c mod 2) = 0 then write('TRUE') else write('FALSE'); //Вывод результата. Если число делится на 2 без остатка, то чётное, утверждение верно(true), иначе утверждение неверно(false)
end.
4. Малое предприятие
по ремонту оборудования имеет
ежедневно прибыль P, с которой платит
налог 15%. Из оставшейся доли 30% идёт на
развитие производства, а остальное на
заработную плату 8 работникам. Какова
среднемесячная зарплата каждого работника.
Для решения данной задачи необходимо
составить формулу, по который будет вычисляться
среднемесячная зарплата каждого работника.
Первым шагом является вычитание 15% из
ежедневной прибыли. Затем из оставшегося
вычитаем ещё 30%. Дальше необходимо полученное
число разделить на количество работников,
тогда мы узнаем среднюю зарплату работника
за один день, а чтобы узнать за месяц,
умножим на 30. Получается следующая формула:
P*0.85*0.7*30/8
program S78N25;
var P:real;
begin
read(p);
p:=p*0.85*0.7*30/8;
write(p:10:0);
read(p);
end.
5. Подсчитайте количество
отрицательных и положительных чисел
среди a, b, c.
program S114N29;
var a,b,c,p,o,n:integer;
procedure check(a:real); //Для решения данной задачи будет использоваться процедура, которая проверяет больше или меньше нуля число.
begin
if a<0 then inc(o) else if a>0 then inc(p) else inc(n);
end;
begin
read(a,b,c);
p:=0;
n:=0;
o:=0;
check(a);
check(b);
check(c);
write(p,o,n);
read(a);
end.
6. Cоставьте программу вычисления произведения тех значений элементов двухмерного массива, которые меньше 32.
program s203n5;
const m=10;n=10;
var i,j:integer; p:longint; a: array [0..m,0..n] of integer;
begin
randomize; //процедура randomize используется для включения генератора случайных чисел. т.к. в условии дан любой массив, мы его заполним случайными числами.
// функция random возвращает случайное значение в указанном диапазоне. В данном случае будет выдано значение от 0 до 59.
p:=1; // в Р будет записываться произведение
for i:=0 to m do begin
for j:=0 to n do begin
a[i,j]:=random(96); //заполняем массив случайными числами от 0 до 98 (одна треть всех чисел будет меньше 32)
write(a[i,j],’ ’);
if a[i,j]<32 then p:=p*a[i,j] //если число меньше 32, то умножаем его на p.
end;
writeln();
end;
write(p);
end.
7. Выведите на экран
все элементы n-го столбца массива, начиная
с нижнего ряда.
program s202c1;
const m=3; k=4;
var i,n: integer; z: array [1..k,1..m] of integer;// m -количество строк, k - количество столбцов
begin
readln(n);
for i:=m downto 1 do //чтобы начать выводить с конца используем цикл со счётчиком, который уменьшается на единицу с каждым повторением
begin
z[n,i]:=i;
writeln(z[n,i]);
end;
readln(i);
end.
8.Определите, имеется ли в двумерном массиве, заданном генератором случайных чисел в интервале (0,210), значение элемента, равное b.
program s202n1;
const m=6; n=9;
var i,j,b:integer; c:boolean; z: array [1..n,1..m] of integer;
begin
randomize;
readln(b);
c:=false;
for i:=1 to m do
for j:=1 to n do
begin
z[n,m]:=random(0,210);
if z[n,m] = b then c:=true;
end;
write(c);
end.
9. Найти сумму n-го количества элементов помледовательности 1, -0.5, 0.25, -0.125, …
var
a,sum: real;
n,i:integer;
begin
write('Количество элементов ряда: ');
readln(n);
a:=1;
sum:=0;
for i:=1 to n do begin
sum:=sum+a;
a:=-a/2
end;
writeln(sum:4:3);
readln
end.
10. В русском языке, когда говорят о количестве лет, то после числа используют слова "год", "года" и "лет". Например, 1 год, но 10 лет или 3 года. Требуется написать программу, которая в зависимости от числа добавляет правильное окончание.
Алгоритм решения задачи:
Слово "год"
добавляется ко всем числам, последняя
(или единственная) цифра которых равна
1.
"Года" для оканчивающихся на 2, 3,
4. Во всех остальных случаях используется
слово "лет".
Числа 11, 12, 13, 14 (или имеющие такой остаток
от деления на 100) имеют "окончание"
лет.
Для того, чтобы определить, на какую цифру заканчивается число, надо найти остаток от его деления на 10.
Информация о работе Паскаль. История создания и развития языка программирования