Rambler's Top100
 

Скачать программы    Все программы автора

ЛАБОРАТОРНАЯ РАБОТА 1

ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ И РАЗВЕТВЛЯЮЩЕЙСЯ  СТРУКТУРЫ

 Цель работы: выработать практические навыки работы с системой TURBO Pascal, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении линейных программ и программ, реализующих алгоритмическую структуру "ветвление" (содержащую операторы If...then... else... и Case).

 

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

 

Структура программы

 

Программа на языке Pascal состоит из  заголовка ,  раздела описаний и  раздела операторов .

PROGRAM Имя (Input,Output); Заголовок  программы 

label -  раздел меток     

const -  раздел констант     

type -  раздел типов      Раздел описаний 

var -  раздел переменных    

procedure -  раздел процедур    

function -  раздел функций    

BEGIN

Оператор 1 ;

Оператор 2 ; Раздел операторов 

 ...   (тело программы) 

Оператор n   

END.  

Заголовок  содержит служебное слово PROGRAM, имя программы, задаваемое программистом, и в круглых скобках имена стандартных процедур Input, Output для связи программы с внешними устройствами ввода-вывода. Заканчивается заголовок символом ";" (точка с запятой).

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

Объявление процедур и функций является одним разделом. Следует заметить, что не все перечисленные разделы обязательны в программе. В простых программах могут потребоваться, например, только разделы описания констант и переменных.

После каждого описания ставится символ ";".

 Раздел операторов("тело" программы) заключается в операторные скобки вида: BEGIN ("начать") и END ("окончить"), при этом после служебного слова END  обязательно  ставится точка. В разделе операторов записывается последовательность исполняемых операторов и каждый выражает действие, которое необходимо выполнить. Исполняемые операторы отделяются друг от друга символом ";".

Хороший стиль программирования требует: (1) записывать слова PROGRAM, BEGIN, END с одинаковой позиции строки; (2) по отношению к ним описания и операторы принято сдвигать  вправо  на 3 символа. Желательно сдвиг делать на одинаковое количество позиций от края или по отношению к предыдущему сдвигу.

 

Константы и переменные

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

 Константы  - это данные, значения которых не изменяются в процессе работы программы. Константы "узнаются" компьютером по форме их записи. В языке Pascal используются константы трех видов:  числовые,  булевские  и  символьные

 Числовые константы  предназначены для представления числовых данных (целых и вещественных).  Булевские константы  используются для представления данных, имеющих смысл логических высказываний (да-нет, истина-ложь).  Символьные константы  представляют данные, являющиеся последовательностями символов.

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

Тип  - это множество значений переменной вместе с множеством операций, которые можно выполнять над элементами этого множества.

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

Число отдельных значений, принадлежащих некоторому типу, называется  мощностью типа . Так, например, мощность типа Boolean есть 2.

В языке программирования Pascal принято все типы данных разделять на три группы: (1)  простейшие , или  скалярные  (к  скалярным типам данных  относятся типы данных таких величин, значения которых не содержат составных частей, т.е. простейшие типы: целочисленный, вещественный, логический, символьный, перечисляемый, интервальный (тип диапазон) и ссылочный); (2)  структурированные  ( структурированный тип  данных, или  структуры данных, в своей основе имеет один или несколько скалярных типов данных, к ним относятся: строки, массивы, множества, записи, файлы); (3)  процедурные  и  типа  object . (этим типам данных трудно поставить в соответствие данные в обычном понимании этого слова. Их названия отражают их базовые признаки и используются, как правило, в объектно-ориентированном программировании, которое поддержано старшими версиями языка Pascal. Понимание работы с этими типами данных требует наличие определенного опыта и навыков программирования). Рассмотрим некоторые  скалярные  (простейшие) типы данных.

1. Диапазон значений типа  Byte: 0..255. Над данными типа Byte допустимы следующие  операции:

сравнения (= ,<> ,< ,<= ,> ,>= );
 +  (сложение); +  (одноместный (унарный) плюс);
 -  (вычитание); - (одноместный (унарный) минус);
 *  (умножение); DIV (деление (получение частного));
 MOD(получение остатка (второй операнд должен быть положительным));
 ShL(логический сдвиг влево);ShR  (логический сдвиг вправо).

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

2. Диапазон значений типа  Integer: -32768..32767. Над данными типа Integer допустимы те же  операции, что и над данными типа Byte.

3. Диапазон значений типа  Word: 0..65535. Над типом Word допустимы те же операции, что и над данными типа Integer.

4. Диапазон значений типа  Real: 2.9E-39..1.7E+38 (по абсолютной величине). Данные типа Real имеют точность до одиннадцати значащих цифр. Над данными типа Real допустимы следующие операции:

сравнения (= ,<> ,< ,<= ,> ,>= );
 +  (сложение); +  (одноместный (унарный) плюс);
 -  (вычитание); - (одноместный (унарный) минус);
 *  (умножение); DIV (деление (получение частного));

5. Тип данных Char определяет множество символов с кодами ASCII. Над данными типа Char допустимы  операции  сравнения (= , <>, <, <=, >, >=).

6. Данные типа Boolean могут принимать два значения: TRUE и FALSE. Над данными типа Boolean  допустимы следующие  операции :

сравнения ( =, <>, <, <=, >, >=);
AND  (логическое И);  OR  (логическое ИЛИ);
XOR  (логическое исключающее ИЛИ);  NOT  (логическое отрицание).

Заметим, что ниже Вам встретятся и другие простейшие типы данных, не включенные в данную классификацию.

 

Встроенные константы

В языке Pascal есть ряд констант, к значениям которых можно обращаться без предварительного определения. Их называют встроенными (или зарезервированными). Перечислим некоторые из них:
MaxInt : Integer - возвращает число 32767, наибольшее значение типа Integer;
PI : Real - возвращает число $\pi$=3.14159265358.

 

Встроенные функции

Odd (A:Integer): Boolean - возвращает TRUE, если А нечетно;
Int(X:Real): Real - возвращает целую часть аргумента;
Round (X:Real): Integer - возвращает результат округления аргумента до ближайшего целого;
Trunc  ( X :Real): Integer - "отбрасывает" дробную часть аргумента;
Frac  ( X :Real): Real - возвращает дробную часть аргумента;
Abs  ( X :Real): Real - возвращает абсолютное значение аргумента;
Abs  ( X :Integer): Integer - возвращает абсолютное значение аргумента;
Random  ( A : Integer): Integer - возвращает случайное число из интервала [0,A);
UpCase  ( A :Char):Char - превращает строчные буквы латинского алфавита в соответствующие им прописные;
Ord  ( A :Char): Byte - возвращает порядковый номер символа A;
Chr  ( A :Byte): Char - возвращает символ, код которого равен A.
Sqr  ( X :Real): Real - возвращает квадрат аргумента;
Sqr  ( X :Integer): Integer - возвращает квадрат аргумента;
Sqrt  ( X :Real): Real - возвращает квадратный корень аргумента;
Exp  ( X :Real): Real- возвращает экспоненту аргумента;
Ln  ( X :Real): Real  - возвращает логарифм аргумента;
Sin  ( X :Real): Real возвращает синус аргумента;
Cos  ( X :Real): Real  - возвращает косинус аргумента;
ArcTan  ( X:Real): Real - возвращает арктангенс аргумента.

Для вычисления значений других функций следует пользоваться тождествами:
$ \arcsin{x}= \arctan {\frac{x}{\sqrt{1-x\cdot x}}};$
$ \arccos{x}=\frac{\pi}{2-\arctan{\frac{x}{\sqrt{1-x\cdot x}}}};$
$ arcctg x=\frac{\pi}{2- \arctan {x}};$
$ \log_b{a}=\frac{\ln{a}}{\ln{b}};$
$ a^{x}= \exp {(x\cdot \ln{a})} (a\gt).$

Процедуры ввода-вывода данных

Для организации ввода и вывода информации в языке программирования Pascal служат четыре процедуры: Read и ReadLn, Write и WriteLn. Эти процедуры являются "встроенными" в язык Pascal, поэтому для того, чтобы ввести информацию в оперативную память компьютера для ее дальнейшей обработки, программисту не надо писать специальную программу, а всего лишь нужно правильно обратиться к процедуре Read или ReadLn. Соответственно, чтобы вывести информацию на дисплей из оперативной памяти компьютера, необходимо вызвать процедуру Write или WriteLn.

 

1. Процедура ввода информации
Процедуры ввода (или чтения информации)  Read  или  ReadLn  обеспечивают ввод числовых данных, символов, строк и т.д. для последующей их обработки программой.

Синтаксис процедуры Read и ReadLn:
Read (X,Y);
ReadLn (X,Y);
где X, Y - переменные, описанные в разделе описания переменных.

Отметим, что указанные процедуры Read и ReadLn аналогичны, единственное отличие заключается в том, что после ввода значений переменных, указанных в списке процедуры ReadLn, ввод значений переменных, указанных в списке следующей процедуры ReadLn, будет производится с новой строки. Этого не происходит в ходе выполнения процедуры Read, т.е. ввод осуществляется на той же строке. Таким образом, процедура ReadLn не только вводит значения указанных переменных, но еще и переводит курсор на новую строку. Это позволяет делать суффикс  Ln.

 

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

Синтаксис процедуры Write и WriteLn:

Write (X,Y);  

или   "Слепой" вывод значений переменных.

WriteLn (X,Y);

Write (X+Y);  

или   Вывод результата выражения.

WriteLn (X+Y); 

Write (X:6:2);  

или   Форматированный вывод значения переменной.

WriteLn (X:6:2);  

Write ('Фраза');  

или   Вывод некоторой фразы на дисплей.

WriteLn ('Фраза');  

Write ('Фраза',Y);  

или   Вывод фразы и значения переменной на экран,

WriteLn ('Фраза',Y);  "неслепой" вывод значения переменной,

где: 1) X, Y - переменные, значения которых нужно вывести на экран;
2) 'Фраза' - некоторый пояснительный текст, который обычно сопровождает значение переменной;
3) X:6:2 - указывается формат значения переменной. Это значит, что всего 6 символов, отводится под значение переменной X, причем после десятичной точки будет выведено на экран 2 символа. Это так называемый форматированный вывод числа с фиксированной точкой.

 

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

 Оператор присваивания  (:=) предписывает выполнить выражение, заданное в его правой части, и присвоит результат переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу. Его синтаксис:
Y:=2;
X:='Строка';
P:=V1;
Summa:=V2;
где: 1) X,Y,P,Summa - имена переменных, описанных в разделе описания переменных;
2) 2, 'Строка' - некоторые значения;
3) V1,V2 - выражения, значения которых нужно вычислить.

 

Пустой оператор

 Пустой оператор  не обозначается и не вызывает никаких действий. Пустой оператор - это просто символ ";" (точка с запятой) в программе. Операторы отделяются друг от друга символом "точка с запятой" (;). Поэтому точку с запятой часто называют  разделителем . Если разделитель между двумя операторами отсутствует, то это приведет к возникновению ошибки, поскольку компилятор часто не может "понять", что же хотел сказать автор программы. Пусть, например, записано
x:=1
y:=2;

Несмотря на то, что операторы присваивания записаны на разных строчках, компилятор будет воспринимать эту запись как
x:=1y:=2

В итоге получается "оператор", в котором используются два знака присваивания и неправильный идентификатор 1y (идентификатор не может начинаться с цифры).

 

Составной оператор

 Составной оператор  представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную  операторными скобками - зарезервированными словами в языке Pascal -  begin  и  end :
$begin S_1; S_2;\ldots;S_n end;$

Поэтому приведенный оператор можно мысленно представить в таком виде: $(S_1; S_2;\ldots;S_n )$. Составной оператор используется в том случае, если необходимо выполнить последовательность операторов внутри какой-либо конструкции как единое целое.

 

Операторы условного перехода (If, Case)

Операторы условного перехода позволяют выбрать для исполнения один из нескольких операторов-компонентов в зависимости от условия.

1.

$ST_1$Оператор If Его синтаксис:

If A

$ST_2$

then

else ;

 

где: 1) A - булевское выражение (возвращающее TRUE или FALSE);
2) $ST_1,\quad ST_2$- операторы (возможно пустые или составные).

Если значение выражения A - TRUE, то выполняется оператор $ST_1$;если значение выражения A - FALSE, то выполняется оператор $ST_2$ Затем, в обоих случаях управление передается следующему оператору программы. Допускается и  краткая форма условного оператора :
If A then ST;
где:

1) A - булевское выражение;
2) ST - оператор (возможно составной).

Если значение A - TRUE, то выполняется оператор ST. Если значение A - FALSE, то управление передается оператору, следующему за оператором IF.

Обычно при написании программы не рекомендуется использовать многократно вложенные друг в друга условные операторы - программа становится громоздкой и трудно понимаемой. Считается, что число уровней вложения не должно превышать двух-трех. Но как быть, если необходимо проверять достаточно много условий и в зависимости от них выполнять те или иные действия? Для этих целей в языке Pascal существует специальный  оператор выбора Case .

2.

Оператор выбора Case Его синтаксис:
Case N of

$ M_1,\ldots,M_n : ST_1;$
$ K_1,\ldots,K_p : ST_2;$
$  \ldots$
$ D_1,\ldots,D_S: ST_i$

end;
где: 1) Case ("случай") - служебное слово;
2) N - переменная, называемая  селектором  или  переключателем ;
3) $M_i$, $K_i$, -  метки  (i=1,2,...), которые отличаются по смыслу от меток, описываемых в разделе Label;


4) $ST_1$, $ST_2$, $ST_i$- операторы.

Отметим, что переключатель и метки должны быть одного и того же скалярного типа (но не тип Real!).

Оператор Case передает управление тому оператору $ST_i$ , с одной из меток которого совпало значение селектора N, а затем - на следующий за end оператор. Если значение селектора N не совпало ни с одной из меток, то исполняется оператор, следующий за зарезервированным словом end.

 

ПРИМЕРЫ

Пример 1.

 Вывести на экран дисплея предложение:  "Это наша первая программа на языке Pascal!"

PROGRAM Primer_1;

BEGIN

WriteLn ('Это наша первая программа на языке Pascal!');

END.

Пример 2.

 Демонстрация операций над данными типа  Byte .

PROGRAM Primer_2;

var x: Byte; { Первый аргумент }

y: Byte; { Второй аргумент }

z: Byte; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Byte... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x DIV 2; WriteLn ('x DIV 2 -> ',z);

z:=x MOD 2; WriteLn ('x MOD 2 -> ',z);

z:=x ShL 2; WriteLn ('x ShL 2 -> ',z);

z:=y ShR 1; WriteLn ('y ShR 1 -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 3.

Демонстрация операций над данными типа  Word.

PROGRAM Primer_3;

var x: Word; { Первый аргумент }

y: Word; { Второй аргумент }

z: Word; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Word... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x DIV 2; WriteLn ('x DIV 2 -> ',z);

z:=x MOD 2; WriteLn ('x MOD 2 -> ',z);

z:=x ShL 2; WriteLn ('x ShL 2 -> ',z);

z:=y ShR 1; WriteLn ('y ShR 1 -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 4.  Демонстрация операций над типом  Integer.

PROGRAM Primer_4;

var x: Integer; { Первый аргумент }

y: Integer; { Второй аргумент }

z: Integer; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Integer... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x DIV 2; WriteLn ('x DIV 2 -> ',z);

z:=x MOD 2; WriteLn ('x MOD 2 -> ',z);

z:=x ShL 2; WriteLn ('x ShL 2 -> ',z);

z:=y ShR 1; WriteLn ('y ShR 1 -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 5.   Демонстрация операций над типом  Real.  Операции с переменными типа Real  реализуются программно, т.е. математический сопроцессор в этом  случае не используется

PROGRAM Primer_5;

var x: Real; { Первый аргумент }

y: Real; { Второй аргумент }

z: Real; { Результат операции }

BEGIN

Write ('Введите значения двух переменных типа Real... '); Read (x,y);

z:=x+y; WriteLn ('x + y -> ',z);

z:=x-y; WriteLn ('x - y -> ',z);

z:=x*y; WriteLn ('x * y -> ',z);

z:=x/2; WriteLn ('x/2 -> ',z);

{ Операцию отношения "=" не используйте для типа Real }

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>=y -> ',x>=y)

END.

Пример 6.  Демонстрация операций над типом Char.

PROGRAM Primer_6;

var x,y: Char;

BEGIN

Write ('Введите значения двух переменных типа Char... '); Read (x,y);

WriteLn ('x = ',x); WriteLn ('y = ',y);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x<y -> ',x<y)

END.

Пример 7.  Демонстрация операций над типом  Boolean.

PROGRAM Primer_7;

var x,y,z: Boolean;

BEGIN

Write ('Введите значения двух переменных типа Boolean... '); Read (x,y);

x:=TRUE; y:=FALSE; WriteLn ('x = ',x); WriteLn ('y = ',y);

z:=NOT x; WriteLn ('NOT x -> ',z);

z:=x AND y; WriteLn ('x AND y -> ',z);

z:=x OR y; WriteLn ('x OR y -> ',z);

z:=x XOR y; WriteLn ('x XOR y -> ',z);

WriteLn ('x=y -> ',x=y);

WriteLn ('x<>y -> ',x<>y);

WriteLn ('x>y -> ',x>y)

END.

Пример 8.  Демонстрация вычисления значений стандартных функций: UpCase, Ord и Chr

PROGRAM Primer_8;

var x: Char;

BEGIN

Write ('Введите значение аргумента типа Char: '); ReadLn (x);

WriteLn ('UpCase (x) -> ',UpCase (x)); WriteLn ('Ord (x) -> ',Ord (x));

WriteLn ('Chr (65) -> ',Chr (65))

END.

Пример 9.

PROGRAM Primer_9;

(* Демонстрация вычисления значений элементарных функций *)

var X: Real; { Аргумент }

Y: Real; { Аргумент }

Z: Integer; { Аргумент }

F: Real; { Результат }

BEGIN

WriteLn ('Значение MaxInt: ',MaxInt); WriteLn ('Значение Пи: ',PI);

Write ('Введите значение аргумента: '); ReadLn (X);

WriteLn ('Trunc (X) -> ',Trunc (X)); WriteLn ('Int (X) -> ',Int (X));

WriteLn ('Frac (X) -> ',Frac (X));

F:=Abs (X); WriteLn ('Значение функции Abs : ',F);

F:=Sqrt (X); WriteLn ('Значение функции корень: ',F);

F:=Exp (X); WriteLn ('Значение функции Exp : ',F);

F:=Ln (X); WriteLn ('Значение функции Ln : ',F);

{ Аргумент тригонометрических функций выражен в радианах }

F:=Sin (X); WriteLn ('Значение функции Sin : ',F);

F:=Cos (X); WriteLn ('Значение функции Cos : ',F);

F:=ArcTan (X); WriteLn ('Значение функции ArcTg: ',F);

{ ------------------------------------------------------------- }

Write ('Введите значение аргумента: '); ReadLn (Y);

F:=Exp (Y*Ln(X)); WriteLn ('Значение функции X^Y : ',F);

{ ------------------------------------------------------------- }

Write ('Введите значение аргумента типа Integer: '); ReadLn (Z);

WriteLn ('Odd (Z) -> ',Odd (Z))

END.

Пример 10.  Определить большее из двух целых чисел  X  и  Y.

PROGRAM Primer_10;

var X : Integer; { Первый аргумент }

Y : Integer; { Второй аргумент }

Bolshee: Integer; { Результат }

BEGIN

Write ('Введите первое число: '); ReadLn (X);

Write ('Введите второе число: '); ReadLn (Y);

If X>=Y

then Bolshee:=X

else Bolshee:=Y;

WriteLn ('Результат: ',Bolshee)

END.

Пример 11.  Напишите программу, переводящую школьные отметки в оценки.

PROGRAM Primer_7;

var BALL : Integer;

BEGIN

Write ('Введите величину отметки: '); Read (BALL); WriteLn;

Case BALL of { Перевод отметки в оценку }

1: WriteLn ('Очень плохо...');

2: WriteLn ('Плохо...');

3: WriteLn ('Удовлетворительно...');

4: WriteLn ('Хорошо!');

5: WriteLn ('Отлично!')

END.

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

 

1. Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c.

2. Определить координату середины отрезка (a,b), если a=0.5, b=2.

3. Вычислить объем цилиндра с радиусом основания r и высотой h.

4. Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость $V_0$

5. Определить время свободного падения физического тела с высоты H.

6. Вычислить площадь треугольника по формуле Герона, если заданы его стороны.

7. Найти действительные корни квадратного уравнения вида $ax^2+bx+c=0$ . (если действительных корней нет, то выдать соответствующее сообщение).

8. Определить и вывести на печать номер квадранта, в котором расположена точка М(x,y), x и y заданные вещественные числа.

9.

Из величин, определяемых выражениями $a=\sin{x}, b=\cos{x}, c= \ln {\left\vert x \right\vert}$ при заданном х, определить и вывести на экран дисплея минимальное значение.

10. Определить, какая из двух точек - $M_1(x_1,y_1)$или $M_2(x_2,y_2)$- расположена ближе к началу координат. Вывести на экран дисплея координаты этой точки.

11. Определить, какая из двух фигур (круг или квадрат) имеет большую площадь. Известно, что сторона квадрата равна а, радиус круга r. Вывести на экран название и значение площади большей фигуры.

12. Определить, попадает ли точка М(X,Y) в круг радиусом r с центром в точке$(X_0,Y_0)$ .

13. По данным сторонам прямоугольника вычислить его периметр, площадь и длину диагонали.

14. Вычислить площадь прямоугольного треугольника, а также:
а) длину гипотенузы по двум его катетам;
б) длину одного из его катетов по гипотенузе и второму катету.

15.Определить координаты вершины параболы $y=ax^2+bx+c\quad (a\ne 0)$. Коэффициенты a,b,c заданы.

16. Определить расстояние на плоскости между двумя точками с за- данными координатами $M_1(X_1,Y_1)$и $M_2(X_2,Y_2)$.

17. Даны действительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

18. Сможет ли шар радиуса R пройти в ромбообразное отверстие со стороной P и острым углом Q?

19. Проверить, можно ли из четырех данных отрезков составить параллелограмм.

20. Студент начал решать задачи данного урока программирования, когда электронные часы показывали $h_1$часов и $min_1$минут, а закончил, когда было $h_2$часов и $min_2$минут. Составьте программу, позволяющую определить, сколько времени студент решал эти задачи. (Будем считать, что задачи решались не дольше суток.)

 

Вверх

Белорусский рейтинг MyMinsk.com Сайты беларуси Регистр "ЗУБР" Каталог на TIGA.BY, а также  новости, работа, объявления, фото и многое другое Rambler's Top100 Белорусский каталог программ Faststart - рейтинг сайтов, каталог интернет ресурсов, счетчик посещаемос­ти Яндекс.Метрика
Hosted by uCoz