Показать сообщение отдельно
Старый 03.06.2013, 02:16   #6
JlyHb92=)
AnyKey`щик
 
Регистрация: 02.06.2013
Сообщений: 5
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Ошибка при программировании на Free pascal

Всё, я исправил код и успешно скомпилировал программу!
Спасибо всем за советы, сделал как сказали, начал всё заново)
Правда, пришлось искать другой алгоритм возведения в степень)

program Calkulytor;
Uses crt; //Модули
var a,b,d,x1,x2,k1,k2,k3:real; i:integer; num,deg:real; res:real; o:byte;  //Переменные
begin

 textbackground(7);   //Оформление
 clrscr;
 textcolor(1);
 
  repeat   //Начало цикла
   
   clrscr;  //Отчистить экран
   gotoxy (27,2);  //Передвинуть коретку
   
       writeln ('Выберете действие:');  //Команды меню
       
     gotoxy (3,4); 
       writeln ('1.Сложение.');
     gotoxy (3,5); 
       writeln ('2.Вычитание.');
     gotoxy (3,6); 
       writeln ('3.Деление.');
     gotoxy (3,7); 
       writeln ('4.Умножение.');
     gotoxy (3,8); 
       writeln ('5.Вычисление кв.корня.');
     gotoxy (3,9); 
       writeln ('6.Возведение в степень.');
     gotoxy (3,10); 
       writeln ('7.Решение кв.уравнения.');
     gotoxy (3,11); 
       writeln ('8.Выход.');
     gotoxy (3,13); 
       readln (i);  //Ввод значения "i"
       
    if (i=1) then
    
       begin
         writeln ('Введите слагаемые:');
         readln (a,b);
         writeln ('Сумма = ',a + b);
       end;
       
    if (i=2) then
    
       begin
        writeln ('Введите уменьшамое и вычитаемой:');
        readln (a,b);
        writeln ('Разность = ',a - b);
       end;
      
    if (i=3) then
    
       begin
        writeln ('Введите делимое и делитель:');
        readln (a,b);
        writeln ('Частное = ',a / b);
       end;
      
    if (i=4) then
       
       begin
        writeln ('Введите множители:');
        readln (a,b);
        writeln ('Произведение = ',a * b);
       end;
      
    if (i=5) then
       
       begin
        writeln ('Введите подкоренное число:');
        readln (a);
        writeln ('Ответ = ',sqrt(a))
       end;
      
    if (i=6) then
 
       begin
    
       writeln ('Введите основание и показатель степени:');
       readln (num,deg);
    
       res := 1;
 
       o := 0;
       while o < abs(deg) do begin
        res := res * num;
        o := o + 1
       end;
 
    if deg < 0 then
        res := 1 / res;
 
        writeln (res:0:5);
 
       end;
      
    if (i=7) then
    
       begin
         writeln ('Введите коэффициенты:');
         readln (k1,k2,k3);
         
         d:= k2 * k2 - 4 * k1 * k3;   //Вычисление дискриминанта

         if (d<0) then writeln ('Нет решения.');
         if (d=0) then
         
       begin
         x1:= - k2 / (2 * k1);
         writeln ('X = ',x1:8:3);
       end;
         if (d>0) then
       begin
         x1:= (- k2 + sqrt (d)) / (2 * k1);
         x2:= (- k2 - sqrt (d)) / (2 * k1);
         writeln ('X1 =', x1:0:5,' X2 =',x2:0:5);
       end;
       end;
        
    if ((i<1)or(i>7)) then i:=0;
    if (i<8) then 
    
      begin
      writeln ('Нажмите "ENTER" для продолжения.');
      readln;
      end;
    
  until i=0;
  
textcolor(2);
writeln ('До свидания =) Автор Игорь (Лунь)');
writeln ('Версия 1.0, 03.06.2013');
writeln ('Press ENTER to exit');
readln;

end.
(Offline)
 
Ответить с цитированием