Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Определение четверти, в которой находится точка




HelloWorld

Begin

writeln('Привет, мир!');

end.

Это - самая первая программа на любом языке программирования.

Вычисление площади круга

const Pi = 3.1415;

 

Var

r: real; // радиус круга

S: real; // площадь круга

 

Begin

write('Введите радиус круга: ');

readln(r);

S:= Pi*r*r;

writeln('Площадь круга равна ',S);

end.

Здесь иллюстрируется ввод, затем вычисления и вывод результата. Входные и выходные переменные описаны на разных строчках, описание сопровождается комментарием

Вычисление A8

Код на PascalABC.NET:

var a: real;

Begin

write('Введите a: ');

readln(a);

var a2,a4,a8: real; // вспомогательные переменные

a2:= a * a;

a4:= a2 * a2;

a8:= a4 * a4;

writeln(a,' в степени 8 = ',a8);

end.

Здесь иллюстрируется использование промежуточных переменных и вычислений: без промежуточных вычислений мы бы потратили 7 умножений, а с промежуточными - всего 3.

Вычисление расстояния между двумя точками на прямой

Код на Pascal:

Var

a,b: real; // координаты точек

r: real; // расстояние между точками на прямой

Begin

write('Введите координату точки a: ');

readln(a);

write('Введите координату точки b: ');

readln(b);

r:= abs(a-b);

writeln('Расстояние между точками = ',r);

end.

Здесь иллюстрируется использование стандартной функции abs

Вычисление гипотенузы по катетам

Var

a,b: real; // катеты

c: real; // гипотенуза

Begin

write('Введите катеты прямоугольного треугольника: ');

readln(a,b);

c:= sqrt(a*a+b*b);

writeln('Гипотенуза = ',c);

end.

Здесь иллюстрируется использование стандартной функции sqrt

Бросание кубиков

Var

r1,r2: integer; // значения на верхних гранях кубиков

Begin

r1:= Random(6)+1;

r2:= Random(6)+1;

writeln('Очки, выыпавшие на кубиках: ',r1,' ',r2);

writeln('Сумма очков равна ',r1+r2);

end.

Здесь иллюстрируется использование стандартной функции Random

Обмен значений двух переменных с использованием третьей

Var

x,y: real;

v: real; // вспомогательная переменная

Begin

write('Введите x,y: ');

readln(x,y);

v:= x;

x:= y;

y:= v;

writeln('Новые значения x,y: ',x,' ',y);

end.

Это - классическая задача о перемене местами значений двух переменных с использованием третьей переменной. Она часто возникает в других задачах. Интересно, что x и y являются как входными, так и выходными переменными

Код на PascalABC.NET:

var x,y: real;

Begin

write('Введите x,y: ');

readln(x,y);

var v: real; // вспомогательная переменная

v:= x;

x:= y;

y:= v;

writeln('Новые значения x,y: ',x,' ',y);

end.

Данное решение использует внутриблочное описание переменной. В результате вспомогательная переменная описывается первый раз лишь в тот момент, в который она действительно понадобилась

Выделение цифр из двузначного числа

Var

x: integer; // двузначное число

c1,c2: integer; // первая и вторая цифры двузначного числа

Begin

write('Введите двузначное число: ');

readln(x);

c1:= x div 10;

c2:= x mod 10;

writeln('Первая и вторая цифры двузначного числа: ',c1,' ',c2);

end.


 

Начало. Возможные ошибки

Неописанная переменная

Begin

S:= 1; // Неизвестное имя S

end.

Все используемые переменные должны быть предварительно описаны с помощью ключевого слова var (внутри блока begin/end или, что обычно хуже, в разделе описаний вначале программы).

Отсутствующая;

Begin

var S: integer

S:= 1; // Компилятор здесь скажет: Ожидалась; — имеется ввиду предыдущая строка!

end.

Begin

var S:= 1

S:= S + 1 // Аналогично: проблема на предыдущей строке, а на текущей нет, потому что после неё идёт end.

end.

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

Несовместимость типов при присваивании

Begin

var S: integer:= 1.3; // Нельзя преобразовать тип real к integer

end.

Безболезненно можно присваивать только данные одного типа. Если данные - разных типов, то в редких случаях можно преобразовать данные одного типа в данные другого. Например, целое можно преобразовать в вещественное, а символ - в строку. Обратные преобразования не допускаются.

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

Begin

var S:= 1.3; // Тип real будет выведен компилятором автоматически

end.

Отсутствие закрывающего апострофа литеральной строки

Begin

var x:= 2; // x получает тип integer

var y:= 3; // y получает тип integer

writeln('Результат сложения равен =, x + y); // Не хватает закрывающего апострофа

end.

Закрыть апостроф надо на той же строке, где расположен открывающий апостроф

Ошибки расстановки запятых и апострофов при выводе строк и выражений

Begin

var x:= 2; // x получает тип integer

var y:= 3; // y получает тип integer

writeln(x, '+,' y, '=', x+y); // Неверная расстановка запятых и апострофов

end.

Слишком много запятых и апострофов рядом, потому начинающие часто путаются:) Надо уяснить правила:

§ запятые разделяют разные элементы вывода

§ все, что находится в апострофах, будет выведено на экран без изменений

Ошибка ввода

Begin

var x: integer;

read(x); // введите блаблабла и посмотрите, что получится

end.

Это - ошибка во время выполнения. Программа пытается преобразовать введенную строку в число, не может это сделать и завершается с ошибкой.

Аналогичный фрагмент в более современном и предпочтительном синтаксисе:

Begin

var x:= ReadInteger;

end.

Ошибка неинициализированной переменной

Begin

var x: integer;

// Забыли инициализировать или ввести x

var r:= x * x; // r получает тип integer

writeln('Квадрат числа ', x, ' = ', r);

end.

Перед использованием любую переменную надо ввести или присвоить ей начальное значение. Это действие называется инициализацией переменной.

Деление на 0

Begin

var x:= 0;

var c:= 666 div x; // Здесь происходит деление на 0

end.

Если во время выполнения программа выполнит деление на 0, то она завершится с ошибкой.

Корень из отрицательного числа

Begin

writeln(sqrt(-1)); // Корень из отрицательного числа

end.

В обычном Паскале возникает ошибка времени выполнения. В PascalABC.NET выводится NaN - Not a Number

Условный оператор и оператор выбора. Тексты программ

Минимум из двух значений

var x,y: integer; min: integer; begin write('Введите x и y: '); readln(x,y); if x<y then min:= x else min:= y; writeln('Минимум = ',min); end.

Определение четности числа

var x: integer; begin write('Введите x: '); readln(x); if x mod 2 = 0 then writeln('Это четное число') else writeln('Это нечетное число'); end.

Состоит ли двузначное число из одинаковых цифр

Код на PascalABC.NET:

var x: integer; begin write('Введите двузначное число: '); readln(x); var c1:= x div 10; var c2:= x mod 10; if c1=c2 then writeln('Цифры числа совпадают') else writeln('Цифры числа не совпадают'); end.

Упорядочение двух значений по возрастанию

var x,y: integer; v: integer; begin write('Введите x,y: '); readln(x,y); if x>y then begin v:= x; x:= y; y:= v end; writeln('Результат упорядочения по возрастанию: ',x,' ',y); end.

Проверка числа на двузначность

var x: integer; begin write('Введите x: '); readln(x); if (x>=10) and (x<=100) then writeln('Двузначное число') else writeln('Не двузначное число') end.

Наименование сезона по номеру месяца

var Month: integer; Season: string; begin write('Введите номер месяца: '); readln(Month); if (Month=1) or (Month=2) or (Month=12) then Season:= 'Зима' else if (Month=3) or (Month=4) or (Month=5) then Season:= 'Весна' else if (Month=6) or (Month=7) or (Month=8) then Season:= 'Лето' else Season:= 'Осень'; writeln('Это ',Season) end.

Определение четверти, в которой находится точка

var x,y: integer; // Координаты точки Quater: integer; // Номер четверти begin write('Введите координаты точки: '); readln(x,y); if x>0 then if y>0 then Quater:= 1 else Quater:= 4 else if y>0 then Quater:= 2 else Quater:= 3; writeln('Номер четверти = ',Quater); end.
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...