Решения (задачи 165-188)
Задача 177
{ Функция max возвращает максимальное из двух чисел function max(a,b: integer): integer; begin if a > b then max: = a else max: = b; end;
Задача 178
{ Возвращает результат сравнения чисел в виде символа отношения } function Compare(a,b: real): char; begin if a > b then Compare: = '>' else if a < b then Compare: = '<' else Compare: = '='; end; x1,x2: real; { сравниваемые числа } res: char; { результат сравнения } begin writeln('Введите два числа и нажмите Enter'); write(' › '); readln(x1,x2); res: = Compare(x1,x2); (вызов функции программиста } writeln(xl:6:2,res,x2:6:2); readln; end.
Задача 179
{ Вычисляет сопротивление электрической цепи } function Sopr(r1,r2: real; t: integer): real; (rl,r2 – величины сопротивлений t – тип соединения: 1 – последовательное; 2 – параллельное. Если тип соединения указан неверно, то возвращает -1 } begin if t=1 then Sopr: = r1+r2; if t=2 then Sopr: = r1*r2/(r1+r2) else Sopr: = -1; { неверно указан тип соединения} end;
Задача 180
{ Вычисление степени числа с использованием свойств логарифмов } function InStep(a,b:real):real; begin (А в степени В равно С Логарифмируем обе части равенства и получаем: В*In (A) = In (С) Нас интересует значение С, поэтому вычисляем Е в степени В*In(А). Значение этого выражения равно С,что и требовалось вычислить. } InStep: = exp(b*ln(a)); end; var a: real; { число } b: real; { степень } с: real; { число в степени } begin writeln('Введите число и показатель степени'); readln(a,b); c: = InStep(a,b); writeln(a:6:3,' в степени ',Ь:6:3,' = ',с:б:3); readln; end. { вычисляет доход по вкладу } function Dohod(sum: real; { сумма вклада } stavka: real; { процентная ставка (годовых) } srok: integer { срок вклада (дней) }): real; begin Dohod: = sum*(stavka/100/365)*srok; { 365 кол-во дней в году } end;
Задача 183
{ Проверяет, является ли символ гласной буквой } Function Glasn(sim:char): boolean; const { гласные буквы } ListOfGlasn:string ='АаЕеИиОоУуЫыЭэЮюЯя'; var p: byte; { позиция проверяемого символа в списке гласных } begin p: = Pos(sim,ListOfGlasn); {!!!! } if p о 0 { символ найден в списке } 146 n Glasn: = True else Glasn: = False; end;
Задача 184
{ Удаляет из строки начальные пробелы } function LTrim(st: string): string; begin while (posC \st) = 1) and (length (st) > 0) do delete(st,1.1); LTrim: = st; end; { проверка работы функции LTrim} var s:string[80]; { строка } begin writeln('Удаление из строки начальных пробелов.'); write('Введите строку – >'); readln (s); write('Строка без начальных пробелов:',LTrim(s)); readln; end.