Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

lamed
Статус: Практикант
Рейтинг: 2145
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1815
∙ повысить рейтинг »
_Ayl_
Статус: Студент
Рейтинг: 1718
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Pascal (Паскаль)

Номер выпуска:1041
Дата выхода:08.03.2010, 21:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:333 / 203
Вопросов / ответов:4 / 8

Вопрос № 177014: Нужно написать программу для Турбо Паскаля ...


Вопрос № 177025: Здравствуйте,уважаемые эксперты! Такие вот задачи, помогите пожалуйста с решением: 1. Имеется одномерный массив, отсортированный пузырьком(уже результат этой сортировки). и данные о том сколько раз перестанавливался каждый из элементов массив...
Вопрос № 177037: здравствуйте,помогите пожалуйста: 1.Введите строку из нескольких слов. Определите, сколько слов в строке имеет четное количество символов, а сколько - нечетное. 2.Текущие активы фирмы представляются выражением ТА(х) = 15 – 7х, а текущи...
Вопрос № 177041: Уважаемые эксперты, помогите, надо написать программу! ...

Вопрос № 177014:

Нужно написать программу для Турбо Паскаля

Отправлен: 02.03.2010, 21:20
Вопрос задал: sanekvseti, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Зенченко Константин Николаевич, Модератор :
Здравствуйте, sanekvseti.

Смотрите приложение. Код ТР7.0.
Задача простая, особенно не комментировал.
Удачи!

Приложение:

-----
Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч

Ответ отправил: Зенченко Константин Николаевич, Модератор
Ответ отправлен: 05.03.2010, 12:46
Номер ответа: 259907
Украина, Киев
Тел.: +38-097-953-66-19
Адрес: Украина, Киев

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 259907 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает 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 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 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. итак, чередуем направления , пока массив не будет отсортирован.

    Заранее огромное спасибо!

    Отправлен: 02.03.2010, 23:46
    Вопрос задал: Надежда Лаптева, Посетитель
    Всего ответов: 2
    Страница вопроса »


    Отвечает amnick, 9-й класс :
    Здравствуйте, Надежда Лаптева.

    Предлагаю решение второй задачи (см. приложение). Для наглядности на экран выводятся исходный массив и промежуточные результаты после каждого прохода.

    Программа протестирована в Borland Pascal 7.0. Процедура сортировки может принимать массивы переменного размера, но в этой версии такие массивы не поддерживаются самим языком, если мне не изменяет память. Поэтому массив передается в процедуру посредством трюков с указателями и приведением типов. Проверка индексов должна быть отключена.

    © Цитата:

    Из Википедии:
    Сортировка перемешиванием (Шейкерная сортировка) (англ . Cocktail sort) — разновидность пузырьковой сортировки. Анализируя метод пузырьковой сортировки можно отметить два обстоятельства.

    Анализируя метод пузырьковой сортировки можно отметить два обстоятельства.
    Во-первых, если при движении по части массива перестановки не происходят, то эта часть массива уже отсортирована и, следовательно, ее можно исключить из рассмотрения.
    Во-вторых, при движении от конца массива к началу минимальный элемент “всплывает” на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо.

    Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки. Границы рабочей части массива (т.е. части массива, где происходит движение) устанавливаются в месте последнего обмена на каждой итерации. Массив просматривается поочередно справа налево и слева направо.

    Примеры реализации сортировки перемешиванием


    Успехов!

    Приложение:

    Ответ отправил: amnick, 9-й класс
    Ответ отправлен: 03.03.2010, 15:40
    Номер ответа: 259868

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 259868 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает 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 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 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 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает Зенченко Константин Николаевич, Модератор :
    Здравствуйте, max123.

    Смотрите приложение. Компилятор ВР 7.0.
    В строке b:='.,!/?-=(@#$;:%^&*)'; Вы указываете символы разделители, все остальные символы относятся к словам.
    Программа вводит строку, заменяет все символы-разделители пробелами, удалет двойные пробелы и только полсе этого считает слова.
    Удачи!

    Приложение:

    -----
    Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч

    Ответ отправил: Зенченко Константин Николаевич, Модератор
    Ответ отправлен: 04.03.2010, 12:46
    Номер ответа: 259887
    Украина, Киев
    Тел.: +38-097-953-66-19
    Адрес: Украина, Киев

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 259887 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Вопрос № 177041:

    Уважаемые эксперты, помогите, надо написать программу!

    Отправлен: 03.03.2010, 17:48
    Вопрос задал: sanekvseti, Посетитель
    Всего ответов: 2
    Страница вопроса »


    Отвечает Micren, Профессионал :
    Здравствуйте, sanekvseti.
    Программа. FreePascal.
    Код:
    program P_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.

    Пример работы:
    Код:
    /home/micren/projects/Pascal/P_177041
    Начальное значение для X:0.2
    Конечное значение для X:2
    Значение шага дл я X:0.156
    Начальное значение для Y:3
    Конечное значение для Y:5
    Значение шага для Y:0.5
    -------------------------------
    | X | Y | Z |
    -------------------------------
    | 0.2000| 3.0000| -2.9258|
    | 0.2000| 3.5000| -2.5925|
    | 0.2000| 4.0000| -0.8320|
    | 0.2000| 4.5000| 1.9248|
    | 0.2000| 5.0000| 5.0029|
    | 0.3560| 3.0000| -2.5443|
    | 0.3560| 3.5000| -2.2251|
    | 0.3560| 4.0000| -0.5384|
    | 0.3560| 4.5000| 2.1027|
    | 0.3560| 5.0000| 5.0516|
    | 0.5120| 3.0000| -2.0614|
    | 0.5120| 3.5000| -1.7539|
    | 0.5120| 4.0000| -0.1296|
    | 0.5120| 4.5000| 2.4138|
    | 0.5120| 5.0000| 5.2536|
    | 0.6680| 3.0000| -1.4822|
    | 0.6680| 3.5000| -1.1848|
    | 0.6680| 4.0000| 0.3858|
    | 0.6680| 4.5000| 2.8452|
    | 0.6680| 5.0000| 5.5913|
    | 0.8240| 3.0000| -0.8110|
    | 0.8240| 3.5000| -0.5225|
    | 0.8240| 4 .0000| 1.0014|
    | 0.8240| 4.5000| 3.3876|
    | 0.8240| 5.0000| 6.0519|
    | 0.9800| 3.0000| -0.0513|
    | 0.9800| 3.5000| 0.2293|
    | 0.9800| 4.0000| 1.7120|
    | 0.9800| 4.5000| 4.0336|
    | 0.9800| 5.0000| 6.6258|
    | 1.1360| 3.0000| 0.7937|
    | 1.1360| 3.5000| 1.0674|
    | 1.1360| 4.0000| 2.5133|
    | 1.1360| 4.5000| 4.7774|
    | 1.1360| 5.0000| 7.3052|
    | 1.2920| 3.0000| 1.7217|
    | 1.2920| 3.5000| 1.9891|
    | 1.2920| 4.0000| 3.4019|
    | 1.2920| 4.5000| 5.6142|
    | 1.2920| 5.0000| 8.0843|
    | 1.4480| 3.0000| 2.7302|
    | 1.4480| 3.5000| 2.9920|
    | 1.4480| 4.0000| 4.3749|
    | 1.4480| 4.5000| 6.5403|
    | 1.4480| 5.0000| 8.9580|
    | 1.6040| 3.0000| 3.8174|
    | 1.6040| 3.5000| 4.0740|
    | 1.6040| 4.0000| 5.4296|
    | 1.6040| 4.5000| 7.5523|
    | 1.6040| 5.0000| 9.9223|
    | 1.7600| 3.0000| 4.9815|
    | 1.7600| 3.5000| 5.2334|
    | 1.7600| 4.0000| 6.5639|
    | 1.7600| 4.5000| 8.6474|
    | 1.7600| 5.0000| 10.9738|
    | 1.9160| 3.0000| 6.2208|
    | 1.9160| 3.5000| 6.4684|
    | 1.9160| 4.0000| 7.7759|
    | 1.9160| 4.5000| 9.8233|
    | 1.9160| 5.0000| 12.1094|


    Добавил по просьбе из мини форума:
    Код:
    program P_177041;

    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 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает 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 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное