Определение четверти, в которой находится точка
Стр 1 из 3Следующая ⇒ 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.Определение четности числа
Состоит ли двузначное число из одинаковых цифр Код на 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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|