Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral

Конспекты уроков

Чебоксары - 2001
Введение
В последнее время в школьной информатике, в связи с появлением в школах новой техники наметилась тенденция отхода от программирования, или уменьшения часов на его изучение. Конечно, новые технологии и INTERNET открывают новые заманчивые перспективы. Но не хочется, чтобы при переходе к их изучению в школе была потеряна фундаментальная составляющая предмета. Изучение алгоритмизации и программирования неисчерпаемы с точки зрения развития аналитического ума школьника, способствует развитию творческих способностей, дает тот культурный уровень, который позволит учащимся продолжить образование в высшей школе по техническому и физико-математическому профилю. Конечно, очень перспективно в настоящее время использование таких объектно–ориентированных сред, как DELPHI и VISUAL BASIC. Однако небольшое число часов, отводимое на изучение предмета, а также отсутствие необходимой техники в школах вынуждает нас остановить выбор на турбо паскале, как на лучшем языке для изучения.
Язык программирования паскаль был разработан Н. Виртом в годах специально как язык, предназначенный для обучения программированию. Язык отличает простота и ясность конструкций, возможность построения новых типов данных. Особенно широкое распространение язык получил с появления версии турбо паскаль для персональных компьютеров. Это произошло 1984 году. Турбо паскаль состоит из языка программирования и среды, которая создает удобства в работе. В настоящее время турбо паскаль остается одним из двух языков программирования, на котором проводятся международные олимпиады по программированию, там стабильно входят в число призеров российские школьники. В нашем городе язык изучается на технических и экономических специальностях университета.
Структура программы
Программа на турбо паскале состоит из заголовка и собственно программы, называемой блоком. Блок состоит из разделов. Максимальное число разделов – шесть. Разделы обязательно располагаются в следующем порядке:
1.Раздел меток.
Например: LABEL 1,2;В нем должны быть используемые метки, правда лучше обходиться без них.
2.Раздел констант.
Например:CONST PI=3.14259;
3.Раздел типов.
Например:TYPE mas=array[1..10 of integer;
4.Раздел переменных.
Например:VAR A, B:integer;
5. Раздел процедур и функций
Например: PROCEDURE HH(a:integer);
6.Раздел выполняемых операторов.
Раздел операторов заключается в операторные скобки, BEGIN…END. В нем указывается последовательность действий, которые должны выполняться компьютером. Все остальные разделы носят описательный характер.
Любой раздел, кроме раздела выполняемых операторов, может отсутствовать. Разделителем между разделами и операторами служит точка с запятой. В конце программы должна стоять точка.
В любое место программы могут быть включены комментарии. Они должны быть заключены в фигурные скобки.
Величины и операция присваивания
Базовым понятием в программировании является понятие величины. Величины бывают постоянные и переменные. Величину можно сравнить с карманом, в ней можно хранить некоторое значение. Величины бывают постоянные и переменные. Постоянные величины это такие, которые не меняют своего значения в процессе выполнения программы. А переменные могут менять. Допустим, мы написали в программе такой оператор:
A:=1;
Что при этом произойдет? Система турбо паскаль автоматически вычислит адрес некоторой свободной ячейки памяти и перешлет в нее число, стоящее справа от знака:=. Эта операция называется операцией присваивания. Не нужно путать ее с операцией проверки на тождество в математике. Следующим оператором мы можем написать: A:=A+1;.
Выполнение операции начнется с вычисления выражения стоящего справа. Из ячейки, в которой хранится значение переменной A, извлечется то, что мы туда положили до этого, к этому значению добавится единичка, а результат будет отправлен по адресу хранения переменной A, в которой обновится значение. Вот поэтому-то величина A и называется переменной, она может многократно менять свое значение в процессе выполнения программы. Операция присваивания является несимметричной, слева всегда стоит имя переменной, а справа арифметическое выражение или число.
Стандартные типы данных
Для всех используемых в программе переменных и постоянных величин задается некоторый тип, определяющий как возможные значения переменной, так и операции, которые могут над ней выполняться. Тип переменной задается в разделе переменных.
Именованная константа отличается от переменной тем, что ее значение не может измениться во время выполнения программы, она описывается в разделе констант. Тип константы однозначно определяется ее значением и в явном виде не указывается.
Язык турбо паскаль предоставляет богатые возможности для построения сложных типов данных, которые задаются в разделе типов. Однако все они строятся на основе элементарных типов: целого, вещественного, символьного и логического.
Целый тип.
Обеспечивает задание целых чисел. На самом деле их пять. В разделе описания переменных описываем их так:
VAR A:BYTE;B:SHORTINT;C:WORD;D:INTEGER;E:LONGINT;
Короткое целое без знака - BYTE(0..255);
Короткое целое со знаком - SHORTINT(-128..127);
Целое без знака – WORD(0..65535);
Целое со знаком – INTEGER(-32768..32767);
Длинное целое со знаком – LONGINT(-..).
Примеры целых чисел:174;-2034;23;-15. Для хранения переменных типа INTEGER в памяти компьютера отводится 2 байта памяти, (или 16 бит). Младший бит отводится для хранения знака, остальные 15-ть - для хранения абсолютной величины числа. Существуют ограничения на диапазон целых чисел. Определено некоторое целое число MAXINT такое, что значение любой величины этого типа находится в диапазоне от + MAXINT до –MAXINT. Над переменными целого типа определены следующие арифметические операции: +(сложение), - (вычитание), * (умножение), / (деление), DIV (деление нацело), MOD (вычисление остатка от целочисленного деления). Все эти операции вырабатывают результат целого типа, кроме операции деления, результат которой всегда будет вещественного типа. Определены также операции отношения: =(равно), <>(не равно), <(меньше), >(больше),<=(меньше или равно), >=(больше или равно), вырабатывающие результат логического типа. C аргументами целого типа используются следующие логические функции:
Имя функции | Математическое Значение | Тип Результа-та | Имя Функции | Математическое Значение | Тип Результа-та |
SIN(x) | Sin x | REAL | ARCTAN(x) | Arctg x | REAL |
COS(x) | Cos x | REAL | EXP(x) | Ex | REAL |
LN(x) | Ln x | REAL | SQR(x) | X2 | INTEGER |
SQRT(x) | Öx | REAL | ABS(x) | ê X ú | INTEGER |
Аргумент должен быть заключен в скобки.
Определены также функции:
ODD(x)- вырабатывает результат логического типа: для четного аргумента-FALSE, для нечетного-TRUE.
SUCC(x)- вырабатывает следующее целое число(т. е. число, на единицу большее x).
PRED(x)- вырабатывает предыдущее целое число(т. е. число, на единицу меньшее x).
Вещественный тип.
Переменные и константы вещественного типа употребляются в том же смысле, что и в математике вещественные числа. В разделе описания переменных их описываем так:
VAR X, Y:REAL;
Существуют две формы представления вещественных чисел: в формате с фиксированной точкой (например:151.456) и в формате с плавающей точкой, т. е. число представляется в виде мантиссы и порядка(0.234578E+3) Последний формат удобен для представления очень больших или очень маленьких чисел.
Вычисления над переменными вещественного типа выполняются приближенно. Над ними определены следующие арифметические операции: +(сложение),- (вычитание), *(умножение), /(деление), а также операции отношения. С ними используются те же стандартные математические функции, что и с переменными целого типа, только все они вырабатывают результат вещественного типа. Определены также две функции преобразования значений вещественного типа в значение целого типа:
TRUNC(X)- вырабатывает целый результат путем отбрасывания дробной части аргумента; ROUND(X)- вырабатывает целый результат путем округления до ближайшего целого. Например: если x=21.53 то TRUNC(x)=21, ROUND(x)=22.
Символьный тип.
В разделе описания типов описываем следующим образом:VAR F:CHAR; Значениями символьного типа являются элементы множества символов, имеющихся на клавиатуре. Каждому символу ставится в соответствие некоторый код, который представляет собой целое число. Символ, заключенный в апострофы обозначает константу символьного типа, например: ‘x’,’5’,’=’. Существуют две стандартные, обратные по отношению друг к другу функции, называемые функциями преобразования:
ORD(S)- дает порядковый номер символа S в упорядоченном множестве символов. Например: ORD(‘:’)=58, ORD(‘5’)=53
CHR(I)- дает символ, стоящий под номером I в упорядоченном множестве символов.
Например: CHR(66)=’B’, CHR(57)=’9’.
Очевидно, что CHR(ORD(S))=S и ORD(CHR(I))=I.
Над переменными символьного типа определены операции отношения. Пусть C1 и С2-переменные символьного типа. Отношения C1<C2 истинно тогда и только тогда, когда ORD(C1)<ORD(C2).
К аргументам символьного типа применимы также функции: PRED(S) и SUCC(S). Функция PRED(S) дает предыдущий символ, a функция SUCC(S)- следующий. Например: PRED(‘B’)=’A’,а SUCC(‘9’)=’:’.
Справедливы также равенства: PRED(S)=CHR(ORD(S)-1), SUCC(S)=CHR(ORD(S)+1)
Логический тип.
Переменные логического типа могут принимать одно из двух значений:TRUE(истина) или FALSE(ложь).В разделе описания переменных описываем их так:VAR A:BOOLEAN;
Над ними определены три логические операции: AND(конъюнкция), OR(дизъюнкция) , NOT(отрицание). Логический тип определен так, что FALSE<TRUE. Это означает, что операции отношения могут быть применены не только к данным целого, вещественного и символьного типов, но и к данным логического типа.
Значение FALSE и TRUE можно рассматривать как упорядоченное множество, состоящее из двух элементов. При этом определены следующие значения стандартных функций:
ORD(FALSE)=0; ORD(TRUE)=1;
SUCC(FALSE)=TRUE; PRED(TRUE)=FALSE
Выражения и приоритет операций
Значение выражения вычисляется с учетом расставленных скобок и старшинства операций. Рассмотрим операции в порядке убывания их приоритета, причем операции в одной строке имеют одинаковый приоритет:
NOT
*,/,MOD, DIV, AND
+,-,OR, XOR
<,<=,>,>=,<>,=,IN
Операции одного и того же старшинства выполняются слева направо в порядке их появления в выражении. Выражения в круглых скобках вычисляются в первую очередь.
При выполнении арифметических операций над величинами только вещественного, а также вещественного и целого типов вырабатывается результат вещественного типа. Тип выражения определяется последовательным вычислением типов результатов всех операций, выполненных при вычислении значения выражения.
Например, значение выражения:
(TER-COS(x)>2.5*KL)AND(ORD(S)<NI) если NI, KL:INTEGER;TER, X:REAL;S:CHAR;
1.A1=COS(x) тип результата REAL;
1.A2=2.5*KL REAL;
3.A3=TER-A1 REAL;
4.A4=A3>A2 BOOLEAN;
5.A5=ORD(S) INTEGER;
6.A6=A5<NI BOOLEAN;
7.A4 AND A6 BOOLEAN.
Задачи для самостоятельного решения.
1.Какого типа будет результат деления(/) 15 на 4?
2.Чему равно А)ODD(15),Б)ODD(26)?
3.Чему равно А)SUCC(137), Б)PRED(26)?
4.Какие из приведенных записей являются неправильными?
А)-71, Б)0.31, В)2,1, Г)0.1E-5, Д).456, Е)9
5. Чему равно?
А)TRUNC(5.61), Б)ROUND(16.16), В)ROUND(17.96), Г)TRUNC(-15.67)
6.Какие из приведенных записей являются неправильными и почему?
А)ODD(17.2), Б)SIN 0.2, PRED(7), В)SUCC(3.2), Г)COS(0.6)
7.Чему равно?
А)ORD(CHR(49)), Б)PRED(‘B’), В)CHR(ORD(‘*’)), Г)SUCC(‘G’)
8.Какие операции определены над переменными логического типа?
9.Какие из приведенных записей являются правильными с точки зрения языка турбо паскаль?
А)‘A’<’C’,Б) FALSE<TRUE, В) 0’ or ‘9’.
10.Определить тип результата следующих выражений, если известно, что I, J,K: INTEGER;X, Y,Z: REAL:
А)I*I+J*J+2*K/2, Б)SIN(X)+2*COS(Y)+Z, В)X<Y, Г)I+SQRT(J)
11. Какие из приведенных операторов присваивания являются правильными, если:
I, J,K:INTEGER; X, Y,Z:REAL; A, B:BOOLEAN?
А) X:=Y+SIN(SIN(Z)), Б)A:=(X<Y)OR B AND(I<>K), В)X:=I+J-B, Г)I:=I+K/J
Организация ввода-вывода в турбо паскале
Ввод-вывод связан с обменом информацией между оперативной памятью и внешними носителями информации, т. е., магнитными дисками. Рассмотрим операторы ввода: READ, READLN.
Ввод в языке турбо паскаль может быть только бесформатный. Можно вводить данные только целого, вещественного, символьного типов. Например:
VAR A, B,C, T:REAL;
BEGIN
…
READ(A, B,C, T);
…
END.
Список ввода-вывода всегда заключается в скобки, разделяются имена переменных запятой. При вводе данные вводятся через пробел:
–1
Можно значения в четыре переменные ввести одним оператором, как было показано, а можно и двумя:
…READ(A, B,C);READ(T);…
Добавка LN означает перевод строки.
…READLN(A, B,C);READ(T);…
Это означает, что при вводе первые три значения следует ввести через пробел на одной строке, а последнее в переменную T на другой
Перейдем к операторам вывода WRITE и WRITELN.
Можно выводить данные всех четырех стандартных типов (для логического типа выводятся константы TRUE или FALSE).
Вывод значений переменных целого типа.
…WRITE(A, B);WRITE(C);…
Все числа выводятся на одной строке, под каждое отводится стандартное количество позиций.
12 -25 7
Аналогичный результат можно получить, с помощью одного оператора: WRITE(A, B,C).…
WRITELN(A, B);WRITE(C);…
Дадут результат печати:
12 -25
7
Если нас не устраивает стандартное количество мест под каждую переменную, то мы можем заказать то, какое нужно:
…WRITE(A:2,B:5,C:4);…
В этом случае при печати под значение переменной A отводится две позиции, под B-пять позиций, под C-четыре.
Чтобы при выводе было понятно назначение переменной желательно пользоваться подсказками при выводе:…WRITE(‘A=’,A:2,’ B=’,B:3,’ C=’,C:1);…При этом будет напечатано:
A=12 B=-25 C=7
Вывод значений переменных вещественного типа.
отличается от вывода целых чисел тем, что в случае задания общего количества позиций под выводимую величину можно задать и количество позиций под дробную часть. В этом случае вывод значения вещественной величины будет выполнен в формате с фиксированной точкой, а по умолчанию - с плавающей, т. е., в виде мантиссы и порядка.
Например:
A:=641.536;B:=17841.1;C:=-7.4385
WRITELN(A:6:2,B:9:2,c:8:4);…обеспечит следующий вывод:
6414385
WRITELN(A, B,C);…обеспечит печать в виде
6.415360E+02 1.784110E+04 –7.438500E+00
При выводе значений символьного типа, если в явном виде не указывать количество позиций, под каждый символ отводится одна позиция.
При выводе значений логического типа на печать выводится TRUE или FALSE.
С помощью оператора WRITELN можно вычислять значения арифметических выражений:
WRITELN(123*0.456/89); в результате работы на экран будет выведено число, получившееся в результате вычислений.
Давайте теперь составим нашу первую программу на турбо паскале:
PROGRAM DD;
VAR A:INTEGER;B:REAL;
BEGIN
WRITELN(‘Здравствуй!’);
WRITELN(‘В каком году ты пошел в школу?’);
READ(A);
WRITELN(‘Сколько ты тогда весил?’);
READ(B);
WRITELN(‘ты окончишь школу в’,A+10,’году’);
WRITELN(‘будешь весить примерно:’,B+25,’кг’);
END.
Пояснения к программе:
Программа начинается с заголовка, имеющего вид: PROGRAM<имя>;
За ним идет раздел описаний, в котором должны быть описаны все объекты (константы, переменные, типы, процедуры, функции, метки), которые будут описаны в программе.
После раздела описаний идет раздел операторов, который начинается со служебного слова BEGIN и заканчиваться служебным словом END. В этом разделе задаются действия над объектами программы, введенными в употребление в разделе описаний. Операторы отделяются друг от друга точкой с запятой. После последнего слова END ставится точка.
Чтобы запустить программу, входим в главное меню системы турбо паскаль с помощью клавиши F10, выбираем режим RUN и дважды нажимаем ENTER. На экране появляется сообщение:
В каком году ты пошел в школу?
Курсор мигает на следующей строке, мы вводим целое значение и нажимаем ENTER, после этого появляется следующий вопрос, в ответ на который мы должны ввести вещественное значение и опять нажать ENTER, теперь наша программа подытожит диалог выводом заключительного сообщения.
Для того, чтобы сохранить программу, необходимо:
Выйти в главное меню и выбрать режим FILE;
Нажать <ENTER> и из появившегося окна выбрать режим SAVE AS…, после нажатия клавиши <ENTER> появится окно, в котором нужно набрать имя файла и еще раз нажмите на ENTER.
Чтобы закончить работу, необходимо:
Выйти в главное меню и выбрать режим FILE;
Нажать<ENTER> и из появившегося окна выбрать режим QUIT, после чего нажать ENTER.
Задачи для самостоятельного решения.
1. Команда лыжников состоит из 3-х человек. В эстафете каждый участник проходит расстояние S км. Скорость 1-го лыжника 45 км/час, второго на 7км/час больше, а скорость 3-го равна среднему арифметическому скоростей 1-го и 2-го. Найдите суммарное время команды.
2. Прямоугольный участок земли имеет периметр P метров. Известно, что длина участка на 20 м больше ширины. Найдите площадь участка.
3. Через какое время мотоциклист догонит велосипедиста, если расстояние между ними S км, скорость велосипедиста V1 км/час, скорость мотоциклиста V2 км/час?
4. В трех цехах завода работает 1274 человека. Во втором цехе на A человек больше, чем в первом, а в третьем на B человек больше, чем во втором. Сколько человек работает в каждом цехе?
5. За A часов по течению реки теплоход проходит тот же путь, что за B часов против течения. Найдите собственную скорость теплохода, если скорость течения 2 км/час.
6. По шоссе идут две автомашины с одной и той же скоростью. Если первая увеличит скорость на 10 км/час, а вторая уменьшит на 10 км/час, то первая за A часов пройдет тот же путь, что вторая за B часов. C какой скоростью идут машины?
7. Периметр прямоугольника 16 см, одна из его сторон B см. Чему равна площадь прямоугольника?
8. Скорость теплохода в стоячей воде равна 24 км/час, скорость течения - в 5 раз меньше. Сколько времени будет теплоход в пути туда и обратно, если расстояние между городами S км?
9. Прохожий гонится за шляпой, которую ветер несет со скоростью 4м/сек. Скорость прохожего на 2 м/сек больше скорости шляпы. Через сколько секунд он догонит шляпу, если сейчас между ними S м?
10. Периметр равностороннего треугольника Xсм, а периметр квадрата в 2 раза больше. На сколько см сторона квадрата больше стороны треугольника?
Условный оператор
Простой условный оператор.
Условный оператор позволяет выбирать одно из двух действий, причем выбор делается во время выполнения программы. Существует два вида условного оператора:
1) IF B THEN S1
2) IF B THEN S1 ELSE S2
где B - выражение логического типа; S1,S2-отдельные операторы или операторы, сгруппированные вместе при помощи операторных скобок BEGIN…END. Такой оператор называется составным. Для условного оператора первого вида оговариваются действия, которые необходимо выполнить только в случае выполнения условия.
Например:IF X<0 THEN X:=-X;
Такой условный оператор называется неполным. Оператор второго вида называется полным.
Например: IF A>B THEN C:=A-B ELSE C:=B-A;
После слова ELSE оговариваются действия, которые должны быть выполнены в случае невыполнения условия.
Пример
Написать программу, проверяющую, принадлежит ли число, введенное с клавиатуры интервалу [0,5].
Решение
Обозначим: X-число, вводимое с клавиатуры. X принадлежит заданному интервалу лишь в том случае, если выполняются два условия: X>0 и X<5:
PROGRAM EXAMPLE1;
VAR X:REAL;
BEGIN
WRITELN(‘Введите число X’);
READLN(X);
IF(X>0)AND(X<5) THEN WRITELN(X:6:3,’принадлежит интервалу [0,5]’)
ELSE WRITELN(X:6:3,’не принадлежит интервалу’);
END.
Вложенные операторы условия
Часто приходится выбирать путь решения задачи не из двух, а из нескольких возможных. В программировании это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов THEN и ELSE записывается новый условный оператор.
Пример
Составьте программу получения уравнения прямой, проходящей через две точки, заданные своими координатами.
PROGRAM PR;
VAR K, B,X1,X2,Y1,Y2:REAL;S:STRING[15];
BEGIN
S:='';
WRITELN (‘Введите координаты первой точки’);
READLN(X1,Y1);
WRITELN(‘Введите координаты второй точки’);
READLN(X2,Y2);
IF X1=X2 THEN WRITELN(‘уравнение прямой: X=’,X1:5:3)
ELSE IF Y1=Y2 THEN WRITELN(‘уравнение прямой: Y=’,Y1:5:3)
ELSE
BEGIN
K:=(Y2-Y1)/(X2-X1);
B:=Y1-K*X1;
IF B>=0 THEN S:=S+’X+’ ELSE S:=S+’X’
WRITELN ( ‘УРАВНЕНИЕ ПРЯМОЙ:Y= ’,K:5:3,S, B:5:3);
END;
END.
Тесты для проверки программы:
1)A(0.5,0.5), B(2,2). Прямая X-Y=0.
2)A(1,1), B(1,2). Прямая X-L=0.
3)A(0.5,1), B(1.5,1). Прямая Y-L=0.
4)A(0.5,1.5), B(2,0.5). Прямая 4X+6Y-11=0
Пример
Написать программу решения квадратного уравнения для любых значений коэффициентов A, B, C.
PROGRAM KW;
VAR A, B,C, X1,X2,D:REAL;
BEGIN
WRITELN(‘Введите коэффициенты A, B,C’);
READLN(A, B,C);
IF A<>0 THEN
BEGIN
D:=B*B-4*A*C;
IF D<0 THEN WRITELN(‘Нет решения, D<0’)
ELSE BEGIN
X1:=(-B+SQRT(D))/(2*A);
X2:=(-B - SQRT(D))/(2*A);
WRITELN(‘X1= ’,X1:6:2,’ X2= ‘,X2:6:2)
END
END
ELSE IF B<>0 THEN WRITELN(‘ X= ‘,-C/B:6:2)
ELSE IF C<>0 THEN WRITELN(‘Нет решения’)
ELSE WRITELN(‘Б/м решений’)
END.
Тесты для проверки программы:
1) A=1, B=1, C=-6. Ответ: X1=2.00, X2=-3.00;
2) A=1, B=1, C=6. Ответ: Нет решения, D<0;
3) A=0, B=2, C=8. Ответ: X=-4.00;
4) A=0, B=0, C=8. Ответ: Нет решения;
5) A=0, B=0, C=0. Ответ: Б/м решений.
Пример
Пусть две прямые описываются уравнениями
A1*X+B1*Y+C1=0 A2*X+B2*Y+C2=0 Требуется напечатать координаты точки пересечения этих прямых либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не существуют.
PROGRAM INTER;
VAR A1,B1,C1,A2,B2,C2,X, Y:REAL;
BEGIN
WRITELN(‘Введите A1,B1,C1’);
READ(A1,B1,C1);
WRITELN(‘Введите A2,B2,C2’);
READ(A2,B2,C2);
IF ((A1=0)AND(B1=0))OR((A2=0)AND(B2=0))
THEN WRITELN(‘это не прямая(прямые)’)
ELSE
IF (A1*B2=A2*B1)AND(A1*C2=A2*C1)
THEN WRITELN(‘прямые совпадают’)
ELSE
IF A1*B2=A2*B1
THEN WRITELN(‘прямые параллельны’)
ELSE BEGIN X:=(C1*B2-C2*B1)/(B1*A2-B2*A1);
Y:=(C2*A1-C1*A2)/(B1*A2-B2*A1);
WRITELN(‘координаты точки пересечения:’
‘ X= ‘,X:5:2,’ Y= ‘,Y:5:2);
END
WRITELN
END.
Тесты для проверки программы.
1) A1=0, B1=0, C1=1, A2=1, B2=2, C2=2 . Ответ: это не прямая (прямые)
2) A1=1, B1=2, C1=2, A2=0, B2=0,C2=1. Ответ: это не прямая (прямые).
3) A1=0, B1=0, C1=0, A2=1, B2=2, C2=1.: Ответ: это не прямая (прямые).
4) A1=1, B1=2, C1=1, A2=1, B2=2, C2=1. Ответ: прямые совпадают.
5) A1=1, B1=2, C1=1, A2=2, B2=4, C2=1 Ответ: прямые совпадают.
6) A1=2, B1=3, C1=-1, A2=4, B2=6, C2=1 Ответ: прямые параллельны.
7) A1=1, B1=2, C1=-4, A2=1, B2=-2, C2=1 Ответ: X=1.50,Y=1.25.
Задачи для самостоятельного решения.
1. Какие из приведенных ниже операторов являются неправильными и почему?
а) IF A<B THEN A:=A*A ELSE B:=B*B;
б) IF X AND Y THEN S:=S+1; ELSE S:=S-1;
в) IF K<>M THEN K:=M;
г) IF 5 THEN S:=S+5;
д) IF(A=B)AND P THEN P:=P+10.5
2. Какие значения имеют переменные A и B в результате выполнения условного оператора: IF A<B THEN A:=B ELSE B:=A, если А=0.5, B=-1.7?
3. Какая задача решается при выполнении оператора?
IF X<Y THEN MAX:=Y ELSE MAX:=X?
4. Поменять местами значение целых переменных A, B,C таким образом, чтобы оказалось A>=B>=C.
5. Вычислить:
X2+1, если X<0;
Y=í X-2.1,если X>p/2;
Sin X, если 0<=X<=p/2.
6. Определите номер квадранта, в котором находится точка с заданными координатами X, Y.
7.Определите, пройдет ли кирпич с ребрами A, B, C в прямоугольное отверстие со сторонами X и Y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.
8. Заданы координаты двух точек. Определите, лежат ли они на одной окружности с центром в начале координат.
9) Смешали v1 литров воды с температурой t1 градусов Цельсия с v2 литрами воды с температурой t2 градусов Цельсия. Вычислите объем и температуру образовавшейся смеси.
10)Задать с помощью условного оператора следующие действия:
a) меньшее из двух значений переменных вещественного типа заменить нулем, если они равны, заменить нулями оба.
10) Написать программу, определяющую принадлежит ли заданная точка указанной области.
а) б) в)







г) д) е)

Ограниченный и перечисляемый типы данных.
Оператор варианта
Ограниченный тип данных.
Ограниченный тип данных представляет собой интервал значений порядкового типа, называемого базовым типом. Описание типа задает наименьшее и наибольшее значения, входящие в этот интервал.
Например: VAR A:1..25;CH:’A’..’Z’;
Здесь переменные A CH могут принимать значения только из указанного интервала; базовым типом для переменной A является целый тип, а для переменной CH-символьный.
Переменная ограниченного типа сохраняет все свойства переменных базового типа. Использование ограниченного типа делает программу более наглядной и понятной.
Перечисляемый тип данных.
Этот тип данных получил название перечисляемого, потому что он задается в виде перечисления некоторых значений. Эти значения образуют упорядоченное множество и являются константами этого типа. Для объявления переменной список возможных значений, разделенных запятой, указывается в круглых скобках. Например:
VAR MONTH(JANUARY, FEBRUARY, MARTH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER);
Упорядоченность элементов перечисляемого типа определяется порядком их следования. Самый левый имеет минимальное значение (значение функции ORD для него равно 0), а наиболее правый - максимальное.
Оператор варианта.
Условный оператор позволяет при выполнении программы выбирать одно из двух возможных действий. Если же необходимо сделать много взаимоисключающих проверок, то удобнее воспользоваться оператором варианта.
Общий вид оператора варианта:
CASE <селектор> OF
<список меток варианта>:<оператор>;
…
<список меток варианта>:<оператор>
[ELSE<оператор>;]
END;
Селектор представляет собой выражение порядкового типа (но не вещественного). Выполнение оператора варианта начинается с вычисления значения селектора. Затем для исполнения выбирается оператор, одна из меток которого совпадает с полученным значением. После выполнения этого оператора (он может быть простым или составным) управление передается оператору, следующему за оператором варианта. Если значение выражения не совпало ни с одним значением, то выполняется оператор, стоящий после ELSE, если он есть, либо управление передается на END и выполнение программы продолжается.
Оператор варианта удобно использовать для ввода и вывода значений переменных перечисляемого типа.
Пример.
Ввести с клавиатуры порядковый номер из списка значений перечисляемого типа COLOR. С помощью оператора CASE присвоить соответствующее значение переменной CLR. Осуществить вывод значений переменной CLR при помощи оператора варианта.
PROGRAM CAS;
TYPE COLOR=(RED, BLUE, BLACK);
VAR X:INTEGER;CLR:COLOR;
BEGIN
WRITE(‘Введите число от0 до2’); READLN(X);
CASE X OF
0:CLR:=RED;
1:CLR:=BLUE;
2:CLR:=BLACK
END;
WRITE(‘COLOR - ’);
CASE CLR OF
RED:WRITELN(‘RED’);
BLUE: :WRITELN(‘BLUE’);
BLACK: :WRITELN (‘BLACK’)
END
END.
Операторы цикла
При разработке алгоритмов решения большинство задач возникает необходимость повторения ряда шагов. Для организации таких повторов (циклов) при записи алгоритмов на языке турбо паскаль используются три разновидности операторов цикла: c параметром, с предусловием и с постусловием.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


