Программирование линейных алгоритмов

      Комментарии к записи Программирование линейных алгоритмов отключены

Линейные программы могут включать в себя операторы присваивания, ввода-вывода, обращения к процедурам.

Оператор присваивания

A:=B;

А – переменная;

В – выражение;

Типы переменной А и значение переменной В должны соответствовать друг другу.

Если переменная А — целого типа, то выражение В тоже должно иметь значение целого типа.

Задачи.

1.Какие из следующих последовательностей символов являются операторами присваивания?

а)X:=Y; б)Min=K+1; в)Summa+1:=W; г)S:=S; д)A:=’****’; е)Rrr=125+1*A ж)Str:=’120*Y’; з)T:=5Y;

2.Пусть значения переменных Х и У равны, соответственно, 3 и –2, какие значения будут иметь эти переменные после выполнения операторов присваивания?

а) X:=X+2*Y; Y:=Y/2;

в) Y:=-Y; X:=X+Y; Y:=Y+1;

г) X:=1; X:=X+Y;

д) X:=Y; Y:=X;

Операторы ввода-вывода

В общем случае ввод и вывод значений происходит из файлов привязанных к программе. Ввод с клавиатуры и вывод на экран рассматривается в Паскале, как обмен информацией между программой и стандартными файлами с именами Input (клавиатура) и Output (экран), поэтому при вводе с клавиатуры значений и выводе результатов на экран имена этих файлов не указываются.

Оператор вывода

Оператор вывода на экран имеет 3 модификации:

Write(B1,B2,…,Bn);- где

B1,B2,…,Bn – выражения типов: Integer, Char, Real, String, Boolean.

При выполнении оператора значения выражений вычисляются и выводятся в одну строку экрана.

Значения типа Integer — выводятся в обычной форме в виде целого числа.

Значения типа Real – в простейшем случае выводятся в форме с порядком, при этом мантисса содержит 7 цифр.

Пример:

Write(123.456); на экране – 1.234560Е02

Write(-0.000123); на экране – — 1.230000Е-04

Для удобства восприятия вывода существует возможность задания маски. Она задается в следующем виде:

Write(A:N:M);

N – целая константа, обозначающая общее число позиций, отводимых под значение A

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

Пример:

Write(123.456:10:4);

.

Write(123.456:6:2);

.

Значения типа Char и String выводятся в виде одного или последовательности символов.

Значения типа Boolean выводятся в виде True или False.

При выводе нескольких значений в одну строку возникает потребность отделять их друг от друга с помощью заданного числа пробелов. Для этого можно использовать элемент списка вывода вида — ’ ’:K – где

К – коэффициент повторения количества необходимых пробелов

Пример:

Write(’X1=’,X1:8:3,’ ’:10,’X2=’,X2:8:3);

Writeln(B1,B2,…,Bn);

Отличается от первого тем, что после вывода последнего значения курсор переводится в начало следующей строки экрана.

Writeln;

Выводит пустую строку.

Задача 1.

Вывести на экран фразу – «Моя первая программа»

Решение:

Program Lin1;

Begin

Writeln(’Моя первая программа’);

End.

Задачи:

1.Какие из следующих последовательностей символов являются операторами вывода:

а) Write(X,Y); б)Writeln(X:Y:Z); в)Writeln г) Write(’Xx’,Xx,’Yy’,Yy); д)Writeln(1+2,3+4,Y/X); е) Writeln(’1+2’,’3+4’,’Y/X’); ж)Writeln(X:=Y,Z);

2.Создать на экране рисунок (использовать любые символы).

Оператор ввода

Оператор ввода значений с клавиатуры имеет вид:

Read(A1,A2,…,An); — где

A1, A2,…,An – имена переменных.

Следует иметь в виду, что вводимые значения не могут быть логическими.

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

— при вводе значений символьных переменных каждый очередной введенный символ становится значением очередной переменной;

— числовые значения должны разделяться пробелами или нажатием клавиши ввода;

— при вводе значений строковых переменных последний вводимый символ полностью включается в значение строковой переменной, поэтому невозможно в одном операторе ввести значение двух строковых переменных так, как нет символа разделяющего одно значение от другого.

Readln(B1,B2,…,Bn);

Отличается от первого тем, что после ввода последнего значения курсор переводится в начало следующей строки экрана.

Readln;

Ждет нажатия клавиши ввода.

Задача 2.

Составить программу – «Диалог с компьютером»

Решение:

Program Lin2;

Var A:String;

Begin

Writeln(’Я компьютер, а как зовут тебя?’);

Readln(A);

Writeln(’Очень приятно, ’,A );

End.

Задача 3.

Даны числа A,B,C. Переприсвоить их значения следующим образом: A B C

Исходные данные:

A=10, B=15, C=20

Pезультат:

A=20, B=10, C=15

Решение:

Program Lin3;

Var A,B,C,D:Integer;

Begin

Writeln(’Введите значения переменных A, B, C’);

Read(A,B,C);

D:=C;

C:=B;

B:=A;

A:=D;

Writeln(’A=’,A,’B=’,B,’C=’,C);

End.

Задачи:

1. Какие из следующих последовательностей символов являются операторами

ввода:

а) Write(X,Y); б) Readln(X+Y,Y); в)Read(X,Y); г)Read(’Xx’,Xx,’Yy’,Yy)?

2. Даны числа A,B,C,D. Переприсвоить их значения следующим образом:

A B C D (составить программу).

3. Какие числа будут выведены в результате выполнения последовательности

операторов:

Read(X); X:=X Mod 2; X:=Sqrt(X+1); Write(X,X*2); если в качестве исходного

данного использовалось число:

а) 2; б)1.2; в)6; г)5.4?

4. Вычислить расстояние между двумя точками с данными координатами X1,Y1 и X2,Y2.

5. На предприятии 2-м рабочим выделена премия (N руб). Разделить эту премию между рабочими в зависимости от стажа их работы на предприятии (прямо пропорциональная зависимость). Стаж вводится с клавиатуры.

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

а) треугольной; б) четырехугольной; в)шестиугольной.

7. Продолжить программу –«Диалог с компьютером».

8. Дано целое число А. Не используя никаких функций и никаких операций кроме умножения получить:

а) А8 за три операции; б) А10 за четыре операции; в) А7 за четыре операции;

9. Дано число Х. Вычислить выражение 2х4-3х3+4х2-5х+6.Позаботиться об

экономии операций.

Статьи к прочтению:

линейные алгоритмы 1


Похожие статьи: