IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите пожалуйста написать прогу, математическая задача
Juhn
сообщение 22.12.2007 13:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Доброго времени суток !
Условие: дано 2 натуральных числа a и b, притом a<b. Найти их сумму, среднее арифметическое, количество чисел. Использовать нужно цикл Repeat - Until, While - Do.
Может кто - то помочь с написанием этой программы в паскале ? Очень нужно.
Спасибо заранее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 22.12.2007 15:16
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
количество чисел

может количество цифр?

Что-нибудь пытался делать? Какие мысли есть? Делись))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 22.12.2007 18:13
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Да да, количество цифр, например если а = 4, б=6, кол-во цифр будет 2, будет считаться при а =4 и при а=5. Так же будет считаться общая сумма и среднее арифметическое этих чисел, тоесть а+б/2. А вот как этот код записать используя данные циклы я не знаю, repeat(далее должны быть все варианты когда а<б)......until(до того пока а не будет =б), я так понимаю, а вот while , do ваше не знаю как испольвзовать, помогите..

Сообщение отредактировано: Juhn - 22.12.2007 18:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 22.12.2007 18:28
Сообщение #4


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Juhn @ 22.12.2007 17:13) *
а вот while , do ваше не знаю как испольвзовать, помогите..
например для поиска количества цифр...
var i, a:integer;
begin
readln(a);
i:=0;
while a<>0 do begin
inc(i);
a:=a div 10;
end;
writeln(i);
end.




--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 23.12.2007 11:36
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Для суммы наверное надо считать не в цикле, а отдельно, так же как и ср. арифметическое (а+б/2), в цикле же нужно что бы он посчитать результат, при а и б. Только вначале он должен запросить введите а и б, и затем в зависимости от этих чисел в цикле должен посчитать ответ подставляя каждый раз вместо а на 1 больше, начиная с того числа которые ввели изначально, и до тех пор пока а будет < чем б. А вот после этого цика уже нужно использовать какой - то другой код, для сложения всех етих полученных результатов, тоесть нахождение суммы. Ну и нужен код для вычисления арифметического чисел а и б, как я понимаю тех, которые мы вводили изначально. И потом уже другим наверное кодом, он должен посчитать кол-во цифр, в зависимости какие были а и б, например если а=4, б=6, то кол-во цифр 2, так как он подставлял а=4 и а=5, а=6 это уже а неменьше чем б получается, значит не нужно. Вот что нужно, помогите подалуйста, не знаю как это написать, как я вижу программа не маленького размера должна получиться, так как много чего нужно находить. Но может кому - то не трудно это сделать, а то я не имею представления как её написать :/ Пожалуйста помогите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 23.12.2007 13:58
Сообщение #6


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


честно говоря, первую часть твоего поста я непонял:)

написать то ее не трудно
function sar(const a, b:integer):real;
begin
sar:=(a + b)/2;
end;

function num(var i1, i2:integer):integer;
var i:integer;
begin
i:=0;
while i1<>0 do begin
inc(i);
i1:=i1 div 10;
end;

while i2<>0 do begin
inc(i);
i2:=i2 div 10;
end;

num:=i;
end;

var a, b:integer;
begin
repeat
write('a-->'); readln(a);
write('b-->'); readln(b);
until(a<b);
writeln('Сумма:', (a+b));
writeln('Среднее арифметическое:', sar(a,b):4);
writeln('Количество цифр:', num(a,b));
end.
хорошо разбирись в ней! будут вопросы -- задавай..


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 23.12.2007 14:26
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Ну и програмка blink.gif
Проверил, компьютер запрашиывает у меня числа а и б, но после того как я их вввёл, программа закрывается. Как я вижу здесь много раз begin и end, значит несколько циклов, но выполняется только 1, запрос а и б, тоесть вот эта часть:
write('a-->');
write('b-->');
Может добавить чего - то нужно ? smile.gif

Сообщение отредактировано: Juhn - 23.12.2007 14:28
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 23.12.2007 14:33
Сообщение #8


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


добавь, если тебе надо, в конце(перед end.) readln; read; и будет тебе счастье smile.gif

>>Ну и програмка
комментарии нужны?

Сообщение отредактировано: compiler - 23.12.2007 14:35


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 23.12.2007 14:57
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Спасибо, теперь всё работает.
Ввёл а =2, б=4, посчитал что сумма =6, ср. арифметическое 3, кол-во цифр =2. Но при таких а и б, сумма должна была быть 13 (здесь и работает цикл repeat, until или while, do, так как должны подставлятся все натуральные числа А, которые меньше чем Б, тоесть сначала а =2 - это будет 2+4 =6, а затем а=3, оно ведь тоже меньше чем Б - 3+4 =7, и затем посчитать уже их сумму, тоесть 7+6 =13.) Со средним арифметическим всё правильно, а вот кол-во цифр, это наверное должны быть все цифры которые использовались при сложении, тоесть 2,3,4, значит кол-во цифр =3. Я так думаю, учитель сам толком не знал, когда я ему задал этот вопрос, но если кол-во цифр только изначальное, то в условии уже сказано что их 2, тогда и считать не надо, поэтому думаю надо что бы считались все используемые цифры.

Попробую поправить формулы, если смогу... с такимим кодами я ещё не знаком, а ещё надо описать все эти строки и написать блок схему, но если не найду в интернете описания этих команд, обращусь ))
А насчёт блок схем, нет ли какой нибудь программы, что бы она сама блок схему делала ? А то программа большая, сам не знаю как её составить ))

Сообщение отредактировано: Juhn - 23.12.2007 14:59
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 23.12.2007 15:37
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Где здесь находится формула рассчёта суммы ? Нужно как - то её поправить, что бы складывались все суммы вместе, не знаю как это сделать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 23.12.2007 18:06
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
Но при таких а и б, сумма должна была быть 13 (здесь и работает цикл repeat, until или while, do, так как должны подставлятся все натуральные числа А, которые меньше чем Б, тоесть сначала а =2 - это будет 2+4 =6, а затем а=3, оно ведь тоже меньше чем Б - 3+4 =7, и затем посчитать уже их сумму, тоесть 7+6 =13.)

Хм.. по-моему это отличается от задания, которое ты привел изначально.. Это твоя додумка или задание звучит как-то по-другому?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 23.12.2007 19:30
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Ну это я так сам думаю, так как с таким циклом я не знаком, но если просто сумму чисел а и б, то зачем вообще этот цикл, сумму двух чисел ведь можно посчитать и без циклов, так же как арифметическое и количество цифр. Просто я подумал для чего тогда в условии дано что а меньше чем б, значит цикл должен подставлять все возможные а и считать их, я так думаю... Правда я переводил условие задачи с другого языка, у учителя спрашивал, но он сам толком не знает, вот такие вот задания.. Но если подумать зачем дано что а меньше чем б, и сказано что надо использовать цикл ОТ и ДО... ?

Сообщение отредактировано: Juhn - 23.12.2007 19:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 23.12.2007 23:42
Сообщение #13


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
Но если подумать зачем дано что а меньше чем б, и сказано что надо использовать цикл ОТ и ДО... ?

наверно вот для этого:
 repeat
writeln('введите a: ');
readln(a);
until a>0;
repeat
writeln('введите b: ');
readln(b);
until (b>0) and (b>a);

чтобы контролировать правильность ввода a и b..

Сообщение отредактировано: Айра - 23.12.2007 23:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 24.12.2007 13:30
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Спасибо, понял ;]
А как описать строки:
function sar(const a, b:integer):real;
function num(var i1, i2:integer):integer;
inc(i);
div

С этими командами я не знаком, а нужно описать каждую строчку. Не подскажите что вот эти строки означают ? smile.gif

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 24.12.2007 15:09
Сообщение #15


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


function sar(const a, b:integer):real;    // описание функции
function num(var i1, i2:integer):integer;// описание функции
inc(i); // увеличение i на единницу
div // целочисленное деление
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 24.12.2007 15:52
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


Спасиб ;]
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Juhn
сообщение 24.12.2007 20:27
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской

Репутация: -  0  +


[img]http://816.sytes.net/bitbucket/_jg_gj_g_1198517129.jpg[/img]

Проверте пожалуйста, правильно ли я сделал блок схему для этой программы ? Если что поправте smile.gif


Сообщение отредактировано: Juhn - 24.12.2007 20:27
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"