1 семестр сессия / Bilet25
.docБилет №25. Общая характеристика языка Pascal.
Язык Паскаль в его современном воплощении (TURBO PASCAL 7.0, OBJECT PASCAL 9.0) -это весьма мощный язык, содержащий многие десятки различных и весьма полезных конструкций. Изучить все его возможности в таком кратком курсе, как наш, нереально.
Одним из фундаментальных свойств Паскаля является его сильная типизация. Это означает, что каждый элемент обрабатываемых данных жёстко связан с соответствующим типом данных, т.е. каждый элемент данных имеет один и только один тип, а каждая операция имеет фиксированные типы для своих операндов и результата. Типизация данных помогает контролировать (в том числе автоматически) многие ошибки в данных и операциях, оптимально распределять память, что упрощает создание высокоэффективных трансляторов. Не все языки программирования поддерживают сильную типизацию (например, Basic, C её игнорируют).
Замечание Некоторые конструкции Турбо Паскаля отходят от принципа сильной типизации (нетипизированные указатели, файлы, открытые массивы и др.), однако это скорее исключение из общего правила. В основном данные сильно типизированные.
Для того чтобы использовать преимущества, которые даёт сильная типизация, необходимо в программе описывать все вводимые программистом имена обрабатываемых структур данных и других объектов до того, как они используются в процессах обработки. Для этого в структуре программы предусмотрен раздел описаний. Транслятор Паскаля устроен таким образом, что он не позволяет использовать данные, которые предварительно неописаны.
Другой важной стороной типизации является наличие в Паскале развитого механизма создания новых типов самим программистом, что также отличает Паскаль от многих других языков. Собственно этот механизм является сердцевиной Паскаля, обеспечивая чрезвычайную гибкость языка. Мы познакомимся с ним постепенно, начиная с конструирования простых типов и до конструирования объектов как расширения типа.
Помимо всего, что связано с типизацией, Паскаль также имеет хорошо структурированные средства для композиции и декомпозиции алгоритмических действий (операций и операторов). Всё это упрощает разработку программ на Паскале, делая её удобной и доступной для программирования практически любых задач.
Однако не следует обольщаться! Программирование на Паскале (как впрочем, и на любом другом языке) не даётся само собой! Для программирования необходимо овладеть основами языка и методики разработки программ. Необходимо научиться "читать" программы (понимая смысл написанного!), а затем и "писать" собственные (пусть вначале и несложные) программы. Не следует думать, что вы легко сможете постичь и то и другое сразу. Поэтому важно на первых этапах сосредоточиться на изучении основ языка, т.е. научиться "читать программы". Этот процесс естественен при изучении любого языка.
К изучению Паскаля следует относиться как к изучению нового для вас языка (аналогичного скажем английскому) и понять, что означают отдельные его слова, а затем и фразы (операторы и другие фрагменты) и как правильно их записывать. Если ассоциация с английским языком вызывает у вас волнения, то хочу успокоить. Паскаль много проще английского языка, и изучить его основы можно за относительно небольшой срок и с несравненно меньшими усилиями. В нём нет двусмысленных или расплывчатых конструкций, времён, склонений или спряжений. Паскаль, как язык программирования, - это язык записи действий (алгоритмов и структур данных). Каждой его конструкции приписывается однозначный смысл (часто независящий от "окружения"), а правила записи конструкций во многом сходны с императивами (командами, указаниями, инструкциями) естественного языка.
При чтении программ на Паскале ключевым принципом является принцип программного управления. Важно помнить, что за исключением описаний каждая законченная конструкция программы - это оператор, представляющий некоторое алгоритмическое действие. Операторы отделяются друг от друга точкой с запятой (в специальных случаях этот разделитель может опускаться) и выполняются в той последовательности, в которой они записаны (если сам оператор не изменяет эту последовательность).
Операторы обрабатывают данные, размещенные в памяти компьютера и идентифицируемые по именам. По сути, операторы и имена - это та модификация, которую претерпел программный принцип управления при переходе от машинного языка к языку программирования высокого уровня. Можно считать, что оператор - это аналог команды, а имя - аналог адреса памяти. Конечно, отличие имеется и в том, что состав возможных операций резко расширен по сравнению с машинным языком и приближен по форме к их выражению на естественном языке.
Задача 4.2.6(25)
program alex25;
type mas=array[1..5,1..4]of integer;
var i,j,maxi:integer;
a,b:mas;
procedure proc(x:mas;n,m:integer;var l:integer);
var i,j,max:integer;
sum:array[1..5]of integer;
begin
for i:=1 to n do
begin
sum[i]:=0;
for j:=1 to m do
if x[i,j]>0 then sum[i]:=sum[i]+x[i,j];
end;
max:=sum[1];
l:=1;
for i:=2 to n do
if sum[i]>max then begin
max:=sum[i];
l:=i;
end;
end;
begin
for i:=1 to 3 do
for j:=1 to 4 do
read(a[i,j]);
for i:=1 to 5 do
for j:=1 to 3 do
read(b[i,j]);
proc(a,3,4,maxi);
writeln('nomer stroki 1 matricy',maxi);
proc(b,5,3,maxi);
writeln('nomer stroki 2 matricy',maxi);
readln;
End.