Вопрос № 177025: Здравствуйте,уважаемые эксперты! Такие вот задачи, помогите пожалуйста с решением: 1. Имеется одномерный массив, отсортированный пузырьком(уже результат этой сортировки). и данные о том сколько раз перестанавливался каждый из элементов массив...
Вопрос № 177037: здравствуйте,помогите пожалуйста: 1.Введите строку из нескольких слов. Определите, сколько слов в строке имеет четное количество символов, а сколько - нечетное. 2.Текущие активы фирмы представляются выражением ТА(х) = 15 – 7х, а текущи...
Вопрос № 177041: Уважаемые эксперты, помогите, надо написать программу! ...
Вопрос № 177014:
Смотрите приложение. Код ТР7.0. Задача простая, особенно не комментировал. Удачи!
Приложение:
----- Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч
Ответ отправил: Зенченко Константин Николаевич, Модератор
Ответ отправлен: 05.03.2010, 12:46
Номер ответа: 259907 Украина, Киев Тел.: +38-097-953-66-19 Адрес: Украина, Киев
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259907
на номер 1151 (Россия) |
Еще номера »
Отвечает F®ost, Советник :
Здравствуйте, sanekvseti. решение задачи:
Код:
Program labs; uses crt; var a,b,c,x,y,z,u:real; begin clrscr; write('Input A: '); readln(a); write('Input B: '); readln(b); write('Input C: '); readln(c);
if a>b then if a<c then x:=a else x:=c else if b<c then x:=b else x:=c; if c>b then x:=c else x:=b; z:=x/(y+5); if (y>=0) and (sqr(x+1)+y*y>=1) and (sqr(x+1)+y*y<=4) then u:=x-y else if (x>=0) and (y<=x-2) then u:=x-y+15 else u:=z; writeln('u= ',u:5:2,', x= ',x:5:2,', y= ',y:5:2,', z= ',z:5:2); readln; end.
----- От вопроса к ответу, от проблемы к решению
Ответ отправил: F®ost, Советник
Ответ отправлен: 05.03.2010, 21:52
Номер ответа: 259922 Беларусь, Минск Тел.: 375292792018 Организация: Минский Промтранспроект Адрес: ул. В.Хоружей, 13, г. Минск, Беларусь Адрес сайта:http://www.mptp.by
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259922
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177025:
Здравствуйте,уважаемые эксперты! Такие вот задачи, помогите пожалуйста с решением:
1. Имеется одномерный массив, отсортированный пузырьком(уже результат этой сортировки). и данные о том сколько раз перестанавливался каждый из элементов массива. Восстановить по этим данным исходной массив, с первоначальной расстановкой элементов. Пример: 5 4 9 3 7 *исходный, эти данный нужно получить* 4 5 3 7 9 - 1 1 2 1 1 *перестановки* 4 3 5 7 9 - 1 2 2 2 1 3 4 5 7 9 - 2 2
2 3 1 В данном примере из данных об отсортированном массиве "3 4 5 7 9 " и данных о количестве перестановок его элементов "2 2 2 3 1" необходимо получить исходный массив - "5 4 9 3 7".
2. Массив 12 3 5 7 9 10 сортируется методом пузырька за один просмотр, а массив 5 7 9 10 12 3 за пять.Устранить неравноправие путём смены направлений просмотров, т.е. первоначально в направлении "направо" получаем 5 7 10 3 12 а затем в н
аправлении "налево" результат - 3 5 7 9 10 12. итак, чередуем направления , пока массив не будет отсортирован.
Отвечает amnick, 9-й класс :
Здравствуйте, Надежда Лаптева.
Предлагаю решение второй задачи (см. приложение). Для наглядности на экран выводятся исходный массив и промежуточные результаты после каждого прохода.
Программа протестирована в Borland Pascal 7.0. Процедура сортировки может принимать массивы переменного размера, но в этой версии такие массивы не поддерживаются самим языком, если мне не изменяет память. Поэтому массив передается в процедуру посредством трюков с указателями и приведением типов. Проверка индексов
должна быть отключена.
Из Википедии: Сортировка перемешиванием (Шейкерная сортировка) (англ
. Cocktail sort) — разновидность пузырьковой сортировки. Анализируя метод пузырьковой сортировки можно отметить два обстоятельства.
Анализируя метод пузырьковой сортировки можно отметить два обстоятельства. Во-первых, если при движении по части массива перестановки не происходят, то эта часть массива уже отсортирована и, следовательно, ее можно исключить из рассмотрения. Во-вторых, при движении
от конца массива к началу минимальный элемент “всплывает” на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо.
Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки. Границы рабочей части массива (т.е. части массива, где происходит движение) устанавливаются в месте последнего обмена на каждой итерации. Массив просматривается поочередно справа налево и слева направо.
Ответ отправил: amnick, 9-й класс
Ответ отправлен: 03.03.2010, 15:40
Номер ответа: 259868
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259868
на номер 1151 (Россия) |
Еще номера »
Отвечает Andrew Kovalchuk, 6-й класс :
Здравствуйте, Надежда Лаптева. Первая задача показалась ОЧЕНЬ интересной. По крайней мере, аналогов мне не попадалось. (Подозреваю, что строка "4 3 5 7 9 - 1 2 2 2 1" должна была бы выглядеть так - "4 3 5 7 9 - 2 1 2 2 1"). Вариант решения в приложении. Надеюсь более опытные эксперты поправят меня в местах, где я оказался неправ (особенно интересно было бы ознакомиться с "авторским" решением).
Приложение:
----- Временная неудача лучше временной удачи
Ответ отправил: Andrew Kovalchuk, 6-й класс
Ответ отправлен: 06.03.2010, 03:53
Номер ответа: 259930
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259930
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177037:
здравствуйте,помогите пожалуйста:
1.Введите строку из нескольких слов. Определите, сколько слов в строке имеет четное количество символов, а сколько - нечетное.
2.Текущие активы фирмы представляются выражением ТА(х) = 15 – 7х, а текущие пассивы – ТП (х) = 10 + 3х2. Протабулируйте, т.е. представьте в табличном виде изменение ТА и ТП, а также ликвидность капитала фирмы L = ТА /ТП ежемесячно в течение года (х =1, 2, 3, 4, 5, …, 12). Результаты табуляции запишите в файл.
Отправлен: 03.03.2010, 12:48
Вопрос задал: max123, Посетитель
Всего ответов: 2 Страница вопроса »
Отвечает Максим Юрьевич, 7-й класс :
Здравствуйте, max123.
2-й вопрос. Или я чего-то не заметил, или это - не очень сложно. Код в приложении. Компилятор - Borland Pascal 7.0
Приложение:
Ответ отправил: Максим Юрьевич, 7-й класс
Ответ отправлен: 03.03.2010, 16:23
Номер ответа: 259870
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259870
на номер 1151 (Россия) |
Еще номера »
Смотрите приложение. Компилятор ВР 7.0. В строке b:='.,!/?-=(@#$;:%^&*)'; Вы указываете символы разделители, все остальные символы относятся к словам. Программа вводит строку, заменяет все символы-разделители пробелами, удалет двойные пробелы и только полсе этого считает слова. Удачи!
Приложение:
----- Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч
Ответ отправил: Зенченко Константин Николаевич, Модератор
Ответ отправлен: 04.03.2010, 12:46
Номер ответа: 259887 Украина, Киев Тел.: +38-097-953-66-19 Адрес: Украина, Киев
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259887
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177041:
Уважаемые эксперты, помогите, надо написать программу!
type { В переменных этого типа будем хранить данные о диапазоне изменения и шаге переменных } TRange=record Start,Finish,Step:Double; end;
{ Вводит данные
вещественного типа с примитивным контролем ошибок } function InputDouble(Msg:String):Double; var Res:Double; begin {$I-} repeat Write(Msg); ReadLn(Res); until IOResult=0; {$I+} InputDouble:=Res; end;
{ Ввод информации о диапазоне изменения переменной } procedure InputRange(Variable:String;var Range:TRange); var Res:TRange; begin Res.Start:=InputDouble('Начальное зн
ачение для '+Variable+':'); Res.Finish:=InputDouble('Конечное значение для '+Variable+':'); if Res.Start>Res.Finish then begin WriteLn('Начальное значение должно быть меньше конечного'); Halt; end; Res.Step:=InputDouble('Значение шага для '+Variable+':'); if Res.Step<=0 then begin WriteLn('Шаг должен быть больше нуля'); Halt; end; Range:=Res; end;
const
Line='-------------------------------';
var XRange,YRange:TRange; X,Y,Z:Double;
begin { Ввод данных } InputRange('X',XRange); InputRange('Y',YRange); WriteLn(Line); WriteLn('|',' X ','|',' Y ','|',' Z ','|'); WriteLn(Line); { Ниже, собственно, само задание } X:=XRange.Start;
repeat Y:=YRange.Start; repeat Write('|',X:9:4,'|',Y:9:4,'|'); { Вычисляем значение } if X>-1 then begin Z:=(X*X+2*cos(Y)+1)/(ln(Abs(1+Sqrt(X+1)))/ln(10)); { Выводим результат } WriteLn(Z:9:4,'|'); end else begin WriteLn(' Ошибка ','|'); end; Y:=Y+YRange.Step;
until Y>YRange.Finish; X:=X+XRange.Step; until X>XRange.Finish; end.
var x,xn,xk,hx,y,yn,yk,hy,z:Real; begin {
Ввод данных } WriteLn('Введите xn,xk,hx,yn,yk,hy'); ReadLn(xn,xk,hx,yn,yk,hy); { Ниже, собственно, само задание } x:=xn; repeat y:=yn; repeat { Вычисляем значение } z:=(x*x+2*cos(y)+1)/(ln(Abs(1+Sqrt(x+1)))/ln(10)); { Выводим результат } WriteLn('x=',x:6:2,' y=',y:6:2,' z=',z:6:2);
y:=y+hy; until y>=yk+hy/2; x:=x+hx; until x>=xk+hx/2; end.
Ответ отправил: Micren, Профессионал
Ответ отправлен: 03.03.2010, 18:41
Номер ответа: 259874
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259874
на номер 1151 (Россия) |
Еще номера »
Отвечает F®ost, Советник :
Здравствуйте, sanekvseti. решение задачи:
Код:
Program labs; uses crt; var x,y,z,xn,xk,yn,yk,hx,hy:real; i:integer; begin clrscr; write('input xn: '); readln(xn); write('input xk: '); readln(xk);
write('input hx: '); readln(hx); write('input yn: '); readln(yn); write('input yk: '); readln(yk); write('input hy: '); readln(hy); y:=yn; writeln(' x y z'); writeln; repeat x:=xn; repeat z:=(x*x+2*cos(y)+1)/(ln(abs(1+sqrt(x+1))/ln(10))); write(' ',x:3:1,' '); write(y:3:1,' '); wri
te(z:6:3); writeln; x:=x+hx; until x>xk; y:=y+hy; writeln; until y>yk; readkey; end.
----- От вопроса к ответу, от проблемы к решению
Ответ отправил: F®ost, Советник
Ответ отправлен: 05.03.2010, 22:25
Номер ответа: 259925 Беларусь, Минск Тел.: 375292792018 Организация: Минский Промтранспроект Адрес: ул. В.Хоружей, 13, г. Минск, Беларусь Адрес сайта:http://www.mptp.by
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 259925
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.