Нахождение корней квадратного уравнения
var a,b,c: real; x1,x2,D: real; begin writeln('Введите коэффициенты a,b,c квадратного уравнения a*x*x+b*x+c=0: '); readln(a,b,c); D:= b*b - 4*a*c; if D<0 then writeln('Корней нет') else if D=0 then begin x1:= -b/2/a; writeln('Корни совпадют: x1=x2=',x1); end else begin x1:= (-b-sqrt(D))/2/a; x2:= (-b+sqrt(D))/2/a; writeln('Корни: x1=',x1:0:3,' x2=',x2:0:3); end; end. Словесное наименование сезона по номеру месяца var Month: integer; Season: string; begin write('Введите номер месяца: '); readln(Month); case Month of 1,2,12: Season:= 'Зима'; 3..5: Season:= 'Весна'; 6..8: Season:= 'Лето'; 9..11: Season:= 'Осень'; else Season:= 'Вы ввели неверный номер месяца'; end; writeln('Это ',Season) end.Определение того, является ли символ цифрой или буквой var Symbol: char; begin write('Введите символ: '); readln(Symbol); case Symbol of 'a'..'z': writeln('Это маленькая английская буква'); 'A'..'Z': writeln('Это большая английская буква'); '0'..'9': writeln('Это цифра'); end; end.
Условный оператор и оператор выбора. Возможные ошибки Неверная расстановка begin end var x,y: integer; v: integer; begin write('Введите x,y: '); readln(x,y); begin // ошибка: операторные скобки должны использоваться по ветке then оператора if if x>y then v:= x; x:= y; y:= v end; writeln('Результат упорядочения по возрастанию: ',x,' ',y); end.Операторные скобки должны находиться внутри другого оператора (например, оператора if), а не окаймлять его. Отсутствие begin end var x,y: integer; v: integer; begin write('Введите x,y: '); readln(x,y); if x>y then v:= x; // ошибка: операторные скобки отсутствуют, поэтому по ветке then выполняется только этот оператор x:= y; // эти операторы выполняются ПОСЛЕ оператора if в любом случае y:= v // writeln('Результат упорядочения по возрастанию: ',x,' ',y); end.Операторные скобки begin-end служат для объединения нескольких операторов в один. В данном случае ими следует окружить 3 оператора по ветке then. Если этого не сделать, то по ветке then будет выполняться только один оператор - v:= x; последующие операторы будут выполняться после оператора if всегда, что неверно.
Неверная расстановка скобок в сложном логическом выражении var x: integer; begin readln(x); if x>1 and x<10 then // ошибка: отсутствуют скобки write(x); end.В языке Паскаль операция and имеет более высокий приоритет, чем операции > и <, поэтому будет сделана попытка выполнить ее в первую очередь, что неверно.
Циклы. Тексты программ Вывод последовательностей 1 2 3 4 5 и 5 4 3 2 1 var i: integer; Begin // С помощью for for i:= 1 to 5 do write(i,' '); writeln;
for i:= 5 downto 1 do write(i,' '); writeln; writeln;
// С помощью while i:= 1; while i<=5 do Begin write(i,' '); i:= i + 1; end; writeln;
i:= 5; while i>=1 do Begin write(i,' '); i:= i - 1; end; writeln; writeln;
// С помощью repeat i:= 1; Repeat write(i,' '); i:= i + 1; until i>5; writeln;
i:= 5; Repeat write(i,' '); i:= i - 1; until i<1; writeln; end. Вывод последовательности 1 3 5 7 9 var i,x: integer; Begin // С помощью for и промежуточной переменной x:= 1; for i:= 1 to 5 do Begin write(x,' '); x:= x + 2; end; writeln;
// С помощью for без промежуточной переменной for i:= 1 to 5 do write(2*i-1,' '); writeln;
// С помощью while x:= 1; while x<10 do Begin write(x,' '); x:= x + 2; end; writeln;
// С помощью repeat x:= 1; Repeat write(x,' '); x:= x + 2; until x>=10; end. Сумма и произведение введенных чисел Код на Pascal Var i: integer; s,p: real; x: real; Begin writeln('Введите 10 чисел: '); s:= 0; p:= 1; for i:= 1 to 10 do Begin read(x); s:= s + x; p:= p * x; end; writeln('Сумма введенных чисел = ',s); writeln('Произведение введенных чисел = ',p); end. Код на PascalABC.NET Var s,p: real; Begin writeln('Введите 10 чисел: '); s:= 0; p:= 1; for var i:= 1 to 10 do Begin var x: integer; read(x); s += x; p *= x; end; writeln('Сумма введенных чисел = ',s); writeln('Произведение введенных чисел = ',p); end. Вычисление n! Код на Pascal Var n,fact: integer; i: integer; Begin write('Введите n (n<=13): '); readln(n); fact:= 1; for i:= 2 to n do fact:= fact * i; writeln(n,'! = ',fact); end. Код на PascalABC.NET var n: integer; Begin write('Введите n (n<=13): '); readln(n); var fact:= 1; for var i:= 2 to n do
fact *= i; writeln(n,'! = ',fact); end. Вычисление An Код на Pascal Var n,i: integer; a,p: real; Begin write('Введите a,n: '); readln(a,n); p:= 1; for i:= 1 to n do p:= p * a; writeln(a,' в степени ',n,' = ',p); end. Код на PascalABC.NET Var n: integer; a: real; Begin write('Введите a,n: '); readln(a,n); var p:= 1.0; for var i:= 1 to n do p *= a; writelnFormat('{0} в степени {1} = {2}',a,n,p); end. Вывод цифр числа var x: integer;
Begin write('Введите x: '); readln(x); write('Цифры числа x в обратном порядке: '); while x<>0 do Begin write(x mod 10,' '); x:= x div 10; end; end. Вывод букв английского алфавита var c: char;
Begin for c:= 'a' to 'z' do write(c,' '); writeln; c:= 'A'; while c<='Z' do Begin write(c,' '); c:= succ(c); end; end. Числа Фибоначчи Код на Pascal const n = 25;
Var a,b,c: integer; i: integer;
Begin a:= 1; b:= 1; write(a,' ',b,' '); for i:= 3 to n do Begin c:= a + b; write(c,' '); a:= b; b:= c; end; end. Код на PascalABC.NET const n = 25;
Begin var a:= 1; var b:= 1; write(a,' ',b,' '); for var i:= 3 to n do Begin var c:= a + b; write(c,' '); a:= b; b:= c; end; end. Минимум из введенных Код на Pascal const n = 10;
Var min: integer; x: integer; i: integer;
Begin writeln('Введите ',n,' значений: '); read(x); min:= x; for i:= 2 to n do Begin read(x); if x<min then min:= x; end; writeln('Минимальное значение = ',min); end. Код на PascalABC.NET const n = 10;
var min: integer;
Begin writelnFormat('Введите {0} значений: ',n); min:= integer. MaxValue; for var i:= 1 to n do Begin var x: integer; read(x); if x<min then min:= x; end; writeln('Минимальное значение = ',min); end. Алгоритм Евклида поиска НОД var a,b,c: integer;
Begin writeln('Введите a,b: '); read(a,b); while b<>0 do Begin c:= a mod b; a:= b; b:= c; end; writeln('Наибольший Общий Делитель = ',a); end. Вывод таблицы умножения Код на PascalABC.NET const n = 9;
Begin for var i:=1 to n do Begin for var j:=1 to n do write(i*j:4); writeln; end; end. Определение простоты числа Var N: integer; IsSimple: boolean;
Begin writeln('Введите число: '); readln(N);
IsSimple:= True; for var i:=2 to round(sqrt(N)) do // если число составное, то один из его сомножителей <= sqrt(N) if N mod i = 0 then Begin IsSimple:= False; break; end;
if IsSimple then writeln('Число ',N,' простое') else writeln('Число ',N,' составное'); end.
Циклы. Возможные ошибки Неверный тип переменной цикла var x: real; begin for x:= 1 to 10 do // переменная - параметр цикла не может иметь вещественный тип write(x); end.Изменение переменной цикла в теле цикла Пример 1. var i: integer; begin for i:= 1 to 10 do begin write(i); i:= i + 2; // Нельзя изменять значение переменной цикла внутри цикла end; end.Пример 2.
Использование одинаковой переменной цикла в заголовках вложенных циклов var i,j: integer; begin for i:= 1 to 10 do for i:= 1 to 10 do // ошибка: во вложенном цикле нельзя использовать параметр цикла с тем же именем begin write(i); end; end.Неинициализированная переменная var i: integer; p: real; begin // Забыли инициализировать p:= 1 for i:= 1 to 10 do p:= p * 2; write(p); end.Зацикливание var x: integer; begin x:= 1; while x>0 do // ошибка: условие все время остается истинным begin writeln(x); x:= x + 1; end; end.Переполнение var n: integer; x: real; begin n:= integer. MaxValue; // максимальное целое writeln(n); n:= n + 1; // следующее за максимальным целым writeln(n); writeln; x:= real. MaxValue; // максимальное вещественное writeln(x); x:= x * 2; // бОльшее, чем максимальное вещественное writeln(x); // в ряде компиляторов возникает ошибка переполнения. // Здесь x получает значение "бесконечность" end.Сравнение вещественных чисел на равенство begin if 0.3*3 = 0.9 then // Значения не равны ввиду ошибки округления при работе с вещественными числами writeln('Равны') else writeln('Не равны'); end.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|