Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.05.2011
Сообщений: 8

Очень нужна помошь по Паскалю!!!(

26.05.2011, 17:13. Показов 2348. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача 1. Рассмотрим следующую задачу. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q (Р — целое, Q — натуральное):
1) сложение;
2) вычитание;
3) умножение;
4) деление;
5) сокращение дроби;
6) возведение дроби в степень N (N — натуральное);
7) функции, реализующие операции отношения (равно, не
равно, больше или равно, меньше или равно, больше, меньше).
Дробь представить следующим типом:
Type Frac=Record
Р: Integer; Q: 1..32767 End;
Используя этот модуль, решить задачу:
1. Дан массив А, элементы которого — обыкновенные дроби. Найти сумму всех элементов и их среднее арифметическое; результаты представить в виде несократимых дробей.

Unit Droby;
Interface Type
Natur=1..High(Longlnt);
Frac=Record
P: Longlnt;
Q: Natur
End;
Procedure Sokr(Var A: Frac);
Procedure Summa(A,B: Frac; Var C: Frac);
Procedure Raznost(A,B: Frac; Var C: Frac);
Procedure Proizvedenie(A,B: Frac; Var C: Frac);
Procedure Chastnoe(A,B: Frac; Var C: Frac);
Procedure Stepen(A: Frac; N: Natur; Var C: Frac);
Function Menshe(A,B: Frac): Boolean;
Function Bolshe(A,B: Frac): Boolean;
Function Ravno(A,B: Frac): Boolean;
Function MensheRavno(A,B: Frac): Boolean;
Function BolsheRavno(A,B: Frac): Boolean;
Function NeRavno(A,B: Frac): Boolean;

{Раздел реализации модуля}
Implementation
{Наибольший общий делитель двух чисел – вспомогательная функция, ранее не объявленная}
Function NodEvklid(А,В: Natur): Natur;
Begin
While A<>B Do
If A>B Then
If A Mod B<>0 Then A:=A Mod В
Else A:=B
Else If В Mod A<>0 Then B:=B Mod A
Else B:=A;
NodEvklid:=A
End;

{Сокращение дроби}
Procedure Sokr;
Var M,N: Natur;
Begin
If A. P<>0
Then
Begin
If A.P<0 Then M:=Abs(A.P)
Else M:=A.P; {Совмещение типов, т.к. А.Р -Longlnt}
N:=NodEvklid(M,A.Q); A.P:=A.P Div N; A.Q:=A.Q Div N
End
End;

Procedure Summa; {Сумма дробей}
Begin
{Знаменатель дроби}
C.Q:=(A.Q*B.Q) Div NodEvklid(A.Q,В.Q);
{Числитель дроби}
C.P:=A.P*C.Q Div A.Q+B.P*C.Q Div B.Q; Sokr(C)
End;

Procedure Raznost; {Разность дробей}
Begin
{Знаменатель дроби}
C.Q:=(A.Q*B.Q) Div NodEvklid(A.Q,В.Q);
{Числитель дроби}
C.P:=A.P*C.Q Div A.Q-B.P*C.Q Div B.Q; Sokr(C)
End;

Procedure Proizvedenie; {Умножение дробей}
Begin
{Знаменатель дроби}
C.Q:=A.Q*B.Q;
{Числитель дроби}
С.Р:=А.Р*В.Р;
Sokr(C) End;

Procedure Chastnoe; {Деление дробей}
Begin
{Знаменатель дроби}
C.Q:=A.Q*B.P;
{Числитель дроби}
C.P:=A.P*B.Q;
Sokr(С)
End;

Procedure Stepen; {Возведение дроби в степень}
Var I: Natur; Begin
C.Q:=1;
C.P:=1;
Sokr(A);
For I:=1 To N Do
Proizvedenie(А,С,С)
End;

Function Menshe; {отношение '<' между дробями}
Begin
Menshe:=A.P*B.Q<A.Q*B.P
End;

Function Bolshe; {отношение '>' между дробями}
Begin
Bolshe:=A.P*B.Q>A.Q*B.P
End;

Function Ravno; {отношение ' = ' между дробями}
Begin
Ravno:=A.P*B.Q=A.Q*B.P
End;

Function BolsheRavno; {отношение '>=' между дробями}
Begin
BolsheRavno:=Bolshe(А,В) Or Ravno(A,B)
End;

Function MensheRavno; {отношение '<=' между дробями}
Begin
MensheRavno:=Menshe(А,В) Or Ravno(A,B)
End;

Function NeRavno; {отношение 'о' между дробями}
Begin
NeRavno:=Not Ravno(A,B)
End;

{Раздел инициализации модуля}
Begin
End.
Сохраним текст разработанной программы в файле DROBY.PAS и откомпилируем наш модуль. Для этого можно воспользоваться внешним компилятором, поставляемым вместе с Турбо Паскалем. Команда будет выглядеть так: ТРС DROBY . PAS. Если в тексте нет синтаксических ошибок, получим файл DROBY.TPU, иначе будет выведено соответствующее сообщение с указанием строки, содержащей ошибку. Другой вариант компиляции: в меню системы программирования Турбо Паскаль выбрать Compile/Destination Disk, затем — Compile/Build.

Теперь можно подключить модуль к программе, где планируется его использование.
Решим первую задачу — выполним суммирование массива дробей.
Program Sum; Uses Droby;
Var A: Array[1..100] Of Frac; I,N: Integer; S: Frac;
Begin
Write('Введите количество элементов массива:');
ReadLn(N);
S.P:=0; S.Q:=1; {Первоначально сумма равна нулю}
For I:=l To N Do {Вводим и суммируем дроби}
Begin
Write('Введите числитель',I,'-й дроби:');
ReadLn(А[I].Р);
Write('Введите знаменатель ',1,'-й дроби:');
ReadLn(A[I].Q);
Summa(A[I],S,S);
End;
WriteLn('Ответ:',S.P,'/',S.Q)
End.

Я ввожу данную программу, а она выдает мне ошибку!!! Я не знаю почему она не работает. Буду благодарна, если вы мне поможете
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2011, 17:13
Ответы с готовыми решениями:

Нужна помошь очень сильно=(
вот задали задачи не сильно для меня простые((( некоторые пытался решить но ничего не получилось вот и решил обратится к вам))) помогите...

Очень нужна помошь
GeForce 9800 GT pentium(R) Dual-Core Cpu E5400 @2.70 GHz 2,00 ГБ ОЗУ мамка - ASRock G31M-VS2 БП ATX FinePower DNP-450 400W ...

очень нужна помошь по точкам доступа
Проблема такая. Есть инет через кабель, роутер и точка доступа. Нужно инет раздать от роутера к точке доступа, а от точки уже на...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2011, 17:13
Помогаю со студенческими работами здесь

ОЧЕНЬ нужна ваша помошь по макросу!
Помогите плиз с решением возникшей проблемы. Написал макрос для огромной номенклатуры деталей. Заданное действие начинает выполняется...

Важно.Очень НУжна помошь!Выпадающее меню.
Здравствуйте,необходима помощь.Помогите вбить в данный css стиль код при помощит которого подменю не только высвечивалось а еще и имело при...

Семестровой по паскалю, буду очень благодарен :)
12 Вариант. Совсем дуб дубом в программировании;)

Книга по Паскалю, которая поможет в решении очень многих задач
Я вот скажу что половина тем тут по Паскалю элементарна и сводится к чтению книги в 100 страниц Абрамов Зима Начала программирования на...

Нужна помошь
Собираю программатор по вот этой схеме http://electro-shema.ru/handmade/programmator-atmega8.html (Схема первая) не нашел стабилитрон на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru