Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2016, 19:55   #1
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию Помогите исправить ошибку в задаче на использование модулей Паскаль

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами:
1) сложения;
2) вычитания;
3) умножения;
4) деления;
5) модуля комплексного числа;
6) возведения комплексного числа в степень п (п — натуРальное).
комплексное число пРедставить следующим типом:
tyPe ComPlex=ReCoRd
R: Real;
m: Real
end;
используя этот модуль, Решить задачу.
дан массив а — массив комплексных чисел. получить массив с, элементами котоРого будут модули сумм Рядом стоящих комплексных чисел.

Вот мой код:
Код:
uses crt; {подключаем модуль для процедуры очистки экрана}
Type Complex=Record {Запись, описывающая комплексное число}
        R:real; {Действительная часть}
        M:Real; 
    end;
 
Var a: array [1..50] of Complex; {Массив чисел}
    c: array [1..50] of Real; {Массив модулей сумм}
    i, n: integer;
    tmp: Complex;
begin
    writeln ('N (<=50): '); {Ввод данных}
    repeat
                        readln (n);
                        if (n>50) then writeln ('N > 50!');
            until n<=50;
    writeln ('Elements: ');
    for i:=1 to n do
    begin
        readln (a[i].R);
        readln (a[i].M);
    end;
    clrscr; {Очистка экрана}
    for i:=1 to n do {Вывод входных данных}
        writeln (a[i].R:3:5, '+', a[i].M:3:5, 'i');
    for i:=1 to n-1 do {Идём по элементам}
    begin
        tmp.R:= a[i].R+a[i+1].R; {Считаем сумму}
        tmp.M:= a[i].M+a[i+1].M;
        c[i]:= sqrt (sqr (tmp.R)+sqr(tmp.M)); {Считаем модуль}
    end;
    writeln ('Result:'); {Выводим результат}
    for i:=1 to n-1 do
        writeln (c[i]:3:5);
             readln;
end.
Ошибка состоит в том что после ввода n<=50
Паскаль зависает на Elements:
Klubnic вне форума Ответить с цитированием
Старый 12.05.2016, 20:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Первое. Это не модуль, это полноценная программа.

второе. что значит - зависает на Elements?
Она ждёт ввода N пар значений
Вы какое число указываете, когда Вас спрашивают
Код:
writeln ('N (<=50): ');
?

вот столько пар значений и вводите (причём вводить надо так:
действительную часть <Enter>
мнимую часть <Enter>

и повторить процедуру N раз.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2016, 20:26   #3
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Первое. Это не модуль, это полноценная программа.

второе. что значит - зависает на Elements?
Она ждёт ввода N пар значений
Вы какое число указываете, когда Вас спрашивают
Код:
writeln ('N (<=50): ');
?

вот столько пар значений и вводите (причём вводить надо так:
действительную часть <Enter>
мнимую часть <Enter>

и повторить процедуру N раз.
Число 4. Спасибо, разобрался как работает

Последний раз редактировалось Klubnic; 12.05.2016 в 20:29.
Klubnic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку в задаче Shinshilla Visual C++ 5 12.11.2014 07:20
нужно исправить ошибку в задаче Паскаль. Getman Помощь студентам 7 02.02.2012 17:56
Помогите исправить ошибку в задаче! Игорь777 Помощь студентам 4 26.04.2009 18:31
Помогите исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 4 04.07.2008 12:27
Помогите исправить ошибку в задаче VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 9 19.05.2008 22:16