Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика часть 1.pdf
Скачиваний:
16
Добавлен:
02.05.2015
Размер:
489.96 Кб
Скачать

3. Записать представленную последовательность операторов в виде эквивалентной последовательности операторов процедур read с одним параметром и readln без параметров.

№1 Ответ: read(a); read(b); read(x); read(y); read(c ); readln ; read(z); №2 Ответ: read(x); read(y); read(z); read(a); read(b); read(c); (без изменений)

№3 Ответ: read(x) ; read(a); readln; read(b); readln; read(y); read ( c); read(z);

4. Записать представленную последовательность операторов в виде эквивалентной последовательности с минимально возможным количеством процедур read и readln .

№1 Ответ: readln(a,b,x,y,c); read(z); №2 Ответ: read(x,y,z,a,b,c);

№3 Ответ: readln(x,a) ; readln(b); read(y,c,z);

Процедуры ввода

Задание 10

Переменные a, b, и c имеют тип char, x, y и z - тип integer. Входные данные ( _ - пробел)

__23___46___92<CR><LF> _184__368__736<CR><LF> 1572_3144_6288<CR><LF>

___1___21__321<CR><LF> 9876_8765__765<CR><LF> 12345__8765___<CR><LF>

Выполните следующие задания.

1.Запишите значения этих переменных после выполнения представленной ниже последовательности операторов.

2.Составьте программу, использующую эти операторы, располагая каждый оператор в отдельной строке. Выполнить трассировку программы. Ввести программу в ЭВМ и сравнить результаты трассировки и работы программы.

3.Запишите представленную последовательность операторов в виде эквивалентной последовательности операторов процедур read с одним параметром и readln без параметров.

4.Запишите представленную последовательность операторов в виде эквивалентной последовательности с минимально

возможным количеством операторов процедур read и readln

№1. read(a);read(b);read(c);readln(x);read(y); read(z)

№2. readln(a);read(b);read(c);read(x);read(y); read(z)

№3. readln(a);readln(b);read(c);read(x);read(y); read(z)

№4. readln(a);readln(b);read(x);read(y);read(z); read(c) №5.readln(a,b);read(x);read(y);read(z);read(c) №6.readln(a);readln(b);readln(x);read(y); read(z);read(c)

№7. read(a);read(b);readln(x);read(y);read(z); read(c)

№8. readln(a,x);readln(b,y);read(z);read(c) №9. readln(a);read(b);read(x);readln(y); read(z);read(c)

№10. readln(a);readln(b);readln(c);readln(x); readln(y);readln(z)

№11. readln(a,x,b,y);read(c,z)

№12. readln;readln;readln(a);readln(b); read(x);read(y);read(z);read(c)

№13. readln(a);readln(x);read(b);readln; readln;read(y);read(z);read(c)

№14. readln(x,y,z,a,b);read(c)

№15. read(a);read(b);read(x);readln(y); readln(z);readln(c)

46

На экране (файл output)

Занятие 13. Процедуры вывода

Вывод информации в Паскале обеспечивается двумя стандартными процедурами - write и writeln. Выполнение этих процедур приводит к выводу в выходной файл (по умолчанию - стандартный файл output, т.е. вывод на экран) параметров процедуры в том порядке, в котором они перечислены.

Исчерпав весь список параметров, оператор процедуры write завершает свою работу, и курсор остается в текущей строке, а выполнение writeln заканчивается переходом курсора в начало следующей строки. Употребление оператора процедуры writeln без параметров приводит к переходу курсора на следующую строку. Как и в случае процедур ввода, процедура вывода с несколькими параметрами эквивалентна действию нескольких процедур с одним параметром:

Write(a1,..,an) Æ write(a1);..write(an) Writeln(a1,..,an) Æ write(a1);..write(an);writeln

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

1)а (вывод без форматирования)

2)а: m

3)a: m : n

где а - параметр, m и n - выражения, которые должны принимать положительные целочисленные значения, и позволяют форматировать вывод .

1) а - вывод без форматирования: Значение параметра выводится, начиная с текущей позиции курсора и занимает ровно столько позиций, из скольки символов это значение состоит, например:

Операторы

write (‘Вывод строки символов’);

Вывод строки символов

x:=100;

 

write(x);

100

x:=-100;

 

write(x)

-100

x:=1,6;y:=-0,555555555555;

 

write(x);

1.6000000000E+00

write(-0,6);

-6.0000000000E-02

write(y);

-5.5555555556E-01

Вывод вещественных чисел без форматирования осуществляется в экспоненциальном виде. Изображение числа включает:

1

позиция

знак числа. Если число отрицательное, то перед

 

 

ним выводится знак минус, плюс либо заменяется

 

 

пробелом, либо вообще не отображается (зависит

 

 

от реализации Паскаля). В предыдущем и

 

 

последующих

примерах

знак

плюс

не

 

 

отображается, и положительное число занимает на

 

 

одну позицию меньше, чем отрицательное.

 

1

позиция

первая цифра мантиссы

 

 

 

1

позиция

десятичная точка

 

 

 

 

10 позиций

остальные цифры мантиссы (количество позиций

 

 

зависит от реализации языка)

 

 

 

1

позиция

буква Е

 

 

 

 

1

позиция

знак порядка

 

 

 

 

2

позиции

цифры порядка

 

 

 

 

Если количество символов в числе превышает количество позиций , отведенных для вывода, то число округляется - как в случае с числом -0,555555555555.

2) a : m - вывод с указанием ширины поля вывода (m). Ширина поля вывода - это количество позиций, которое задает программист и в котором должно быть размещено значение а,

47

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

Здесь возможны два случая, в зависимости от соотношения m и количество k символов, изображающих выводимое значение а. Например:

Операторы

На экране (файл output)

Случай m>k

Остающиеся свободными (m-k) левые позиции заданного поля заполняются пробелами

write (‘Вывод строки символов’ :

_ _ _ _Вывод строки символов

25);

 

x:=100;

 

write(x :10);

_ _ _ _ _ _ _100

x:=-100;

 

write(x :10)

_ _ _ _ _ _ -100

 

 

x:=1,6;y:=-0,555555555555;

 

write(x : 20);

_ _ _ 1.6000000000E+00

write(-0,6 : 20);

_ _ _ -6.0000000000E-02

write(y : 20);

_ _ _ -5.5555555556E-01

 

 

Случай m<k

значение m игнорируется и ширина поля принимается в точности равной числу k символов, изображающих значение а (кроме

строки символов, здесь выводятся столько символов, сколько

заказано)

write (‘Вывод строки символов’ :

Вывод стр

9);

 

X:=100;

 

Write(x :1);

100

X:=-100;

 

Write(x :3)

-100

 

 

 

X:=1,6;y:=-0,555555555555;

 

 

Write(x : 2);

1.6E+00

минимум 7 символов

Write(-0,6 : 7);

-6.0E-02

минимум 8 символов

Write(y : 20);

-5.6E-01

минимум 8 символов

 

и округление

3) a : m : n - вывод вещественных чисел в формате с фиксированной запятой (точкой в Паскале). Здесь m также представляет собой ширину поля вывода, из этих m позиций n позиций отводится на вывод дробной части.

Изображение числа включает:

 

 

1 позиция

знак минус (если число меньше 0)

С позиций

цифры перед

точкой

-

целая часть числа,

 

выводится всегда вся

 

 

1 позиция

десятичная точка

 

 

n позиций

цифры после точки - дробная часть числа , при

 

нехватке позиций округляется до требуемого (n)

 

количества значащих цифр. Если n больше

 

количества значащих цифр после точки, то

 

остающиеся

свободными

правые позиции

 

заполняются нулями. Если указано n=0 (что

 

вообще-то не имеет смысла), то дробная часть

 

также округляется и на экране видно целое число

 

без десятичной точки.

 

 

Минимальное количество позиций для отрицательного числа

равно 1(знак)+С+1(точка)+n, для положительного = С+1+n.

Например:

 

 

 

 

 

 

 

 

 

Операторы

 

 

На экране (файл output)

x:=1,6; y:=-0,555555555555;

 

 

 

 

write(x : 2:3);

 

 

1.600

 

 

write(-0,6 : 7:10);

 

-0.6000000000

 

write(y : 20:3);

 

 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _-0.555

48

write(y:20:10)

_ _ _ _ _ _ _-0.5555555555

Процедуры вывода

. Задание 11

Даны переменные и их значения: a=11, b=4.78, c=-89.4, x='s', y='z'.

Выполните следующие задания.

1.Запишите результаты, получающиеся после выполнения представленной ниже последовательности операторов.

2.Составьте программу, использующую эти операторы, располагая каждый оператор в отдельной строке. Выполнить трассировку программы. Ввести программу в ЭВМ и сравнить результаты трассировки и работы программы.

3.Запишите представленную последовательность операторов в виде эквивалентной последовательности операторов процедур write с одним параметром и writeln без параметров.

4.Запишите представленную последовательность операторов в виде эквивалентной последовательности с минимально возможным количеством операторов процедур write и writeln

№1 write(a:1,b*c:6); writeln(x:6,b:3:1'--------':1,y:5);write(c,a-1); №2 write(a);writeln(b:7:2,c:1); writeln(x:10,y,a*3:1);

№3 writeln(a:11,y:3,a-b:10);write(x); write(c:13:4)

№4. write(a:1);write(x:2);write(b:10); writeln(b:10:1,y,c-a)

№5 write('результат равен',a-b*c); writeln;write(c:a,x,y);write(b-a:1:1 №6. write(a,x:10,y,b:10:2,c:15); write(‘a-b’,a-b:1:3);writeln(a/3:5);

№7. writeln(b,x); write(y,z,a-b:10,c:7:1);write(‘a*c’:2,a-27:1); №8. write('----------':5,a,b,c:6);writeln(x,y); write(c);writeln(a+c:5:3,a+5:1);

№9 writeln(x,y,a); write(c:a+5,'результат=':3,b-c:6:2) №10. writeln(a:1,b:1,c:10); writeln(x:a,'????????':3,y);write(c,y); write(c*a:11:3);

№11. writeln(a:1);write(b*c-a:6:1); writeln(x,y,'////':1);write(c:12);writeln(c-a); №12 write('a-b',a-b,'a-b*c':2,a-b*c:a:a-5); writeln(x:6,y,c:12:1)

№13 write('Сумма равна',a+b,'a-b', 'равно':a,a-b,a:12,b:12:1,x,y:a)

№14 writeln('результат':3);writeln('равен', a*b-c:a:3,c:a-1:5);write(x,c,y)

№15. write('Пример',a,b*c:6:2); writeln('Cтрока':2,x:6,y,a-b,c:5)

Синтаксис

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

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

49