1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите с задачей на Pascal'e: Разработка алгоритмов и программ решения различных задач с использов

Тема в разделе "Оффтопик", создана пользователем Dragoy, 20 ноя 2012.

  1. Автор темы
    Dragoy

    Dragoy Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    Dragoy11
    Имя в Minecraft:
    Dragoy
    Требование к программе

    Решение задачи оформить в виде процедуры (функции). Эта процедура должна быть реализована в модуле и не должна иметь глобальных переменных и выполнять каких-либо операций ввода-вывода. Весь необходимый ввод-вывод должен быть сосредоточен в разделе операторов программы. Там же должен находиться и вызов процедуры решения задачи. Предполагается, что обмен данными между вызывающей программой и вызываемой процедурой выполняется только через параметры.

    Помогите решить одну из следующих задач:


    Вариант 1.
    Разработать модуль, реализующий функции калькулятора. Предусмотреть возможность выполнения операций +, -, *, /. Запись операндов должна осуществляться в алгебраической форме (один операнд, знак операции, второй операнд).

    Вариант 2.
    Разработать модуль, реализующий функции калькулятора. Предусмотреть возможность выполнения операций +, -, *, /. Запись операндов должна осуществляться в польской форме (один операнд, второй операнд, а затем знак операции).

    Вариант 3.
    Разработать два модуля. Первый должен содержать ряд необходимых тригонометрических функций, не реализованных в Паскале (например, Tg(x), Ctg(x) и др.) Второй модуль должен содержать функцию для возведения в степень.

    Вариант 4.
    Разработать программу, использующую модуль, который содержит четыре процедуры, вычисляющие значения гиперболических функций.

    Вариант 5.
    Разработать программу, использующую модуль, который содержит процедуру, вычисляющую значение интеграла с помощью одного из известных методов.


    Отблагодарю!
     
  2. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Я бы сделал, это очень легко, но не актуально...:)
     
  3. Orbis

    Orbis Старожил Пользователь

    Баллы:
    153
    Беда прямо с некропостерами) Не посмотрел на дату, начал что-то писать, вспоминая старые знания -,-
    Первая задача должна выглядеть как-то так (писал на телефоне, поэтому, естественно, не компилировал)
    Код:
    program DCalc;
    
    Procedure Calc(s:string; var answer:integer);
    Var
      a,b,i:integer;
      sign:char;
    begin
      a:=0; b:=0; i:=1;
    
      while s[i] in ['0'..'9'] do //Преобразуем первый операнд в число
      begin
        a:=a*10+StrToInt(s[i]);{+ord(s[i])-ord('0');} //Умножаем первый операнд на 10 и прибавдяем к нему следующую цифру. Если ругается на StrToInt, попробуйте использовать вариант в {}
        i:=i+1;
      end;
    
      sign:=s[i]; //Цикл дошел до знака, запоминаем знак
      i:=i+1; //Переходим на следующий символ
    
      while i<=length(s) do //Преобразуем второй операнд в число. Т.к. далее идут только цифры, цикл идет до конца строки
      begin
        b:=b*10+StrToInt(s[i]);{+ord(s[i])-ord('0');} //Получаем второй операнд тем же способом
        i:=i+1;
      end;
    
      case sign of //Выполняем нужное действие в зависимости от значения sign
        '+': answer:=a+b;
        '-': answer:=a-b;
        '*': answer:=a*b;
        '/': answer:=a div b;
      end;
    end;
    
    Var
      question:string;
      i,answer:integer;
     
    begin
      Readln(question); //"Ввод"
      Calc(question,answer); //"Обмен через параметры"
      Write(answer); //"Вывод"
      Readln;
    end.
    Жаль, на рб нет наказаний для некропостеров, минут 20 на это потратил, а оказалось, зря.
     
    Cames, KoBoT, KriBetko и ещё 1-му нравится это.
  4. Автор темы
    Dragoy

    Dragoy Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    Dragoy11
    Имя в Minecraft:
    Dragoy
    Я отблагодарил тебя жирным лойсом :)
     
  5. Orbis

    Orbis Старожил Пользователь

    Баллы:
    153
    Неужели было еще актуально?)
     
  6. Автор темы
    Dragoy

    Dragoy Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    Dragoy11
    Имя в Minecraft:
    Dragoy
    Нет, но ты же старался, что очень приятно :)
     
    ПриветОтЛайки и Orbis нравится это.
  7. KriBetko

    KriBetko Старожил Пользователь

    Баллы:
    153
    Skype:
    kribetko
    Где ты такое задание получил?
    Ненавижу в польской форме делать
     
  8. caNek

    caNek Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    AddyCool
    Для первой, остальные аналогично.
    Код:
    BEGIN
    Writeln('Введите число 1');
        ReadLn (a);
        Writeln('(+,/,*,-)');
        ReadLn (oper);
        Writeln('Введите число 2');
        ReadLn (b);
        case oper of
            '+'        : rez:=a+b;
            '-'        : rez:=a-b;
            '*'        : rez:=a*b;
            '/'        : rez:=a/b;
            else        WriteLn('х')
        end;
        WriteLn('Chislo = ',rez );
        end;
    END.
     
    ПриветОтЛайки, KriBetko и Dragoy нравится это.
  9. KriBetko

    KriBetko Старожил Пользователь

    Баллы:
    153
    Skype:
    kribetko
    Лишний end
     
  10. caNek

    caNek Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    AddyCool
    Нет не лишний, в начале еще шаблонное начало.
     
  11. KriBetko

    KriBetko Старожил Пользователь

    Баллы:
    153
    Skype:
    kribetko
    И что закрывает предпоследний end?
     
  12. caNek

    caNek Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    AddyCool
    Первый - цикл.
    Второй - программу. Т.к. в конце точка.
     
  13. KriBetko

    KriBetko Старожил Пользователь

    Баллы:
    153
    Skype:
    kribetko
    Ну так, а end'ов всего 3
     
    caNek нравится это.
  14. caNek

    caNek Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    AddyCool
    упс
     
    KriBetko нравится это.

Поделиться этой страницей