Процедуры и функции, Помогите полажуйста!!! |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Процедуры и функции, Помогите полажуйста!!! |
-Наташа- |
Сообщение
#1
|
Гость |
Разработаите функцию, которая находит НОД двух целых чисел. Разработайте процедуру, вычисляющую сумму двух обыкновенных дробей. Напишите программу, которая находит сумму n заданных обыкновенных дробей.
|
mind abuse |
Сообщение
#2
|
Студент Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: Владимир Репутация: 3 |
Разработаите функцию, которая находит НОД двух целых чисел. Разработайте процедуру, вычисляющую сумму двух обыкновенных дробей. Напишите программу, которая находит сумму n заданных обыкновенных дробей. Эмм, вы сговорились) Задача Как должны вводиться обыкновенные дроби? -------------------- ...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин) |
-Наташа- |
Сообщение
#3
|
Гость |
не знаю в задании не указано
|
renesko1 |
Сообщение
#4
|
поиск Группа: Пользователи Сообщений: 347 Пол: Мужской Реальное имя: nir Репутация: 2 |
можно наверное так 2/6 если что не забыл.
-------------------- typedef void Śūnyatā ;
|
Гость |
Сообщение
#5
|
Гость |
Мальчики ну помогите полажуйста
|
mind abuse |
Сообщение
#6
|
Студент Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: Владимир Репутация: 3 |
-------------------- ...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин) |
mind abuse |
Сообщение
#7
|
Студент Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: Владимир Репутация: 3 |
Код Program t1; uses crt; var i:integer; procedure ratio; var numerator,denominator: array [1..1000] of integer; n,numsum,densum:integer; begin numsum:=0; densum:=0; writeln('input number of ratios'); write('n='); readln(n); writeln('input numerator of ratio, then press "Enter", then input denominator of ratio'); writeln('input ratios'); for i:=1 to n do begin write('ratio ',i,'='); read(numerator[i]); write('/'); read(denominator[i]); end; for i:=1 to n do begin numsum:=numsum+numerator[i]; densum:=densum+denominator[i]; end; writeln('Sum is ',numsum,'/',densum); end; begin clrscr; ratio; end. Наверняка нерационально, +дробную черту на следующую строку не переносит + дробь не упрощает, но работает, а минусы исправимы. Сообщение отредактировано: mind abuse - -------------------- ...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин) |
volvo |
Сообщение
#8
|
Гость |
Цитата Наверняка нерационально Мало того, что нерационально, так еще и неправильно... 2/3 + 3/4 не равно 5/7, как утверждает твоя программа... В задании совсем не просто так просят найти НОД двух чисел... |
mind abuse |
Сообщение
#9
|
Студент Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: Владимир Репутация: 3 |
Тьфууу((( Тяжёлый был день( Сейчас исправлю.
-------------------- ...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин) |
mind abuse |
Сообщение
#10
|
Студент Группа: Пользователи Сообщений: 35 Пол: Мужской Реальное имя: Владимир Репутация: 3 |
Код Program t1; uses crt; var i:integer; function NOD(a:integer; b:integer):integer; begin while(a<>0) and (b<>0) do if a>=b then a:=a mod b else b:=b mod a; NOD:=a+b; end; procedure ratio; var numerator,denominator: array [1..1000] of integer; n,numsum,densum,usednod:integer; begin numsum:=0; writeln('input number of ratios'); write('n='); readln(n); writeln('input numerator of ratio, then press "Enter", then input denominator of ratio'); writeln('input ratios'); for i:=1 to n do begin write('ratio ',i,'='); read(numerator[i]); write('/'); read(denominator[i]); densum:=denominator[1]; numsum:=0; end; for i:=2 to n do begin densum:=densum*denominator[i]; end; for i:=1 to n do begin numsum:=numsum+(densum div denominator[i])*numerator[i]; end; usednod:=NOD(numsum,densum); numsum:=numsum div usednod; densum:=densum div usednod; writeln('Sum is ',numsum,'/',densum); end; begin clrscr; ratio; end. По-прежнему сильно корявое, но теперь хоть считает правильно и дробь сокращает. Жалко, что человека предыдущим вариантом подвёл( -------------------- ...Чего-то хотелось: не то конституции, не то севрюжины с хреном, не то кого-нибудь ободрать.
(М. Е. Салтыков-Щедрин) |
volvo |
Сообщение
#11
|
Гость |
Вот еще вариант, с обработкой элементарных ошибок:
function NOD(A, B: longint): integer; |
Гость |
Сообщение
#12
|
Гость |
Спасибо вам огромное
|
Текстовая версия | 15.05.2024 9:21 |