• Иллюстрированный самоучитель по Turbo Pascal для начинающих

    Решения (задачи 165-188)

    Задача 186

    { Преобразование строчных букв в прописные }
    (Замещает стандартную процедуру UpCase} function UpCase(st:string): string; var
    i:integer; begin
    for i: = 0 to Length(st) do { символы нумеруются с нуля! } case st[i] of
    { латинские буквы}
    'a'..'z':UpCase[i]: = chr(ord(st[i])-32);
    { русские буквы}
    'a'..'n':UpCase[i]: = chr(ord(st[i])-32);
    'p'..'я':UpCase[i]: = chr(ord(st[i])-80);
    else { остальные символы не преобразуем
    UpCase[i]: = st[i]; end;
    end;
    { пример использования функции UpCase } var
    st: string; begin
    writeln(' Введите текст и нажмите Enter');
    write(' › ');
    readln(st);
    writeln(UpCase(st));
    readln; end.
    

    Задача 188

    { Решение квадратного уравнения }
    function KvadrUr(a,b,c: real; var xl,x2: real):
    integer; { a,b,c – коэффициенты уравнения }
    { xl,x2 – корни уравнения } (значение функции – количество корней
    или – 1, если неверные исходные данные } var
    d: real; (дискриминант } begin
    if a = 0 then KvadrUr: = – 1 else begin
    d: = b*b-4*a*c; if d < 0 then
    KvadrUr: = 0 { уравнение не имеет решения } else begin if d > О
    then KvadrUr: = 2 { два разных корня }
    else KvadrUr: = 1; { корни одинаковые }
    xl: = (-b+Sqrt(d))/(2*a); x2: = (-b-Sqrt(d))/(2*a); end; end; end;
    основная программа } var
    a,b,c: real; { коэффициенты уравнения } xl,x2: real; (корни уравнения } begin
    writeln('Решение квадратного уравнения');
    writeln('Введите в одной строке коэффициенты и нажмите
    'Enter'); write(' › '); readln(a,b,с); case KvadrUr(a,b,c,xl,x2) of
    -1: writeln('Ошибка исходных данных.');
    0: writeln('Уравнение не имеет решения.');
    1: writeln('x=',xl:6:2,' Корни одинаковые.');
    2: writelnГxl=',xl:6:2,' х2=',х2:6:2);
    end; readln; end.
    uses Crt; var
    a:integer; { число, введенное пользователем }
    { Функция Getlnt предназначена для ввода целого
    положительного числа, состоящего из одной или двух цифр.
    Во время ввода для редактирования может использоваться <Backspace>.
    При нажатии Enter функция возвращает введенное число. }
    function Getlnt:integer; const
    K_BACK=8; { код клавиши <Backspace> }
    K_ENTER=13; { код клавиши Enter } var
    ch:char; { символ }
    dec:byte; { код символа }
    buf:array[l..2] of char; { введенные цифры }
    n:integer; { кол-во введенных цифр }
    x,у:integer; { положение курсора } begin
    buf[1]: = ' '; buf[2]: = ' ';
    then
    n: = 0; repeat
    ch: = Readkey; dec: = ord(ch);
    if (ch>='0') and (ch<='9') and (n<2) begin
    write(ch); n: = n+l; buf[n]: = ch; end else
    if (dec=K_BACK) and (n>0) then begin
    n: = n-l; x: = WhereX; y: = WhereY; GotoXY(x-l,y); write(' '); GotoXY(x-l,y); end;
    until (n>0) and (dec=K_ENTER); { преобразуем введенную строку в число } if n=2
    then Getlnt: = (ord(buf[1])-48)*10+ord(buf[2])-48 else Getlnt: = ord(buf[1])-48; end;
    begin
    ClrScr;
    writeln('*** Демонстрация работы функции Getlnt. ***');
    writeln;
    writeln('Функция Getlnt предназначена для ввода целого
    'положительного числа,');
    writeln('состоящего из одной или двух цифр.'); writeln('Во время ввода для редактирования может ',
    'использоваться <Backspace>.'); writeln('При нажатии Enter функция возвращает ',
    'введенное число.'); writeln;
    writeln('Введите число и нажмите Enter'); write(' › ');
    teln('ftnH завершения работы программы нажмите ',
    'Enter'); readln; HALT(l); end;
    { полотнище флага }
    SetFillStyle(SolidFill,LightGray); { сплошная заливка
    серым цветом } Ваг(80.80.200.135);
    { кольца }
    SetColor(Green); (зеленое }
    Circle(100.100.15);
    SetColor(Black); { черное }
    Circle (140.100.15);
    SetColor(Red); { красное }
    Circle(180.100.15);
    SetColor(Yellow); { желтое }
    Circle(120.115.15);
    SetColor(Blue); { синее }
    Circle(160.115.15);
    readln; CloseGraph; end.
    
    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.