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

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


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

lamed
Статус: Профессор
Рейтинг: 3196
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2521
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Профессор
Рейтинг: 2508
∙ повысить рейтинг »

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

Номер выпуска:1134
Дата выхода:27.10.2010, 23:30
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:190 / 183
Вопросов / ответов:3 / 5

Вопрос № 180408: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить задачу: Создать случайным образом двумерный массив целых чисел В каждой строке найти максимум и заменить его на противоположный по знаку элемент. (пользуюсь программо...


Вопрос № 180409: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить задачу: Разработать программу, которая для заданной строки s выводит на экран последовательность символов, расположенных после последнего двоеточия. (пользуюсь программо...
Вопрос № 180411: Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, решить задачу: Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Вывести только те слова, которые встречают...

Вопрос № 180408:

Здравствуйте, уважаемые эксперты!
Помогите, пожалуйста, решить задачу:

Создать случайным образом двумерный массив целых чисел
В каждой строке найти максимум и заменить его на противоположный по знаку элемент.

(пользуюсь программой ABC)

Отправлен: 22.10.2010, 14:10
Вопрос задал: verona (2-й класс)
Всего ответов: 1
Страница вопроса »


Отвечает Зенченко Константин Николаевич (Модератор) :
Здравствуйте, verona!

Смотрите приложение.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (Модератор)
Ответ отправлен: 22.10.2010, 15:48
Номер ответа: 263612
Украина, Киев
Тел.: +38-097-238-60-03
Адрес: Украина, Киев

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


  • Вопрос № 180409:

    Здравствуйте, уважаемые эксперты!
    Помогите, пожалуйста, решить задачу:

    Разработать программу, которая для заданной строки s выводит на экран последовательность символов, расположенных после последнего двоеточия.

    (пользуюсь программой ABC)

    Отправлен: 22.10.2010, 14:13
    Вопрос задал: verona (2-й класс)
    Всего ответов: 2
    Страница вопроса »


    Отвечает Зенченко Константин Николаевич (Модератор) :
    Здравствуйте, verona!

    Смотрите приложение. Программа простая, комментировать особо нечего.
    Удачи!

    Приложение:

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

    Ответ отправил: Зенченко Константин Николаевич (Модератор)
    Ответ отправлен: 22.10.2010, 14:58
    Номер ответа: 263607
    Украина, Киев
    Тел.: +38-097-238-60-03
    Адрес: Украина, Киев

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



    Отвечает lamed (Профессор) :
    Здравствуйте, verona! ABC-Pascal
    Код:

    program p180409;
    { Программа для заданной строки s выводит на экран последовательность символов,
    расположенных после последнего двоеточия. }
    var // раздел переменных
    i : integer;
    len: integer;
    s : string;
    begin // раздел операторов
    write('Строка s=');
    readln(s);
    if trim(s)='' then
    writeln('пустая строка')
    else
    begin
    len := length(s);
    i:= len; // установили счетчик на конец строки
    while (i>=0) and (s[i]<>':') do
    i:= i-1; // и идем влево до первого справа появления двоеточия или до начала строки
    if i <0 then
    writeln('нет двоеточий')
    else if (i=len) then
    writeln('после последнего двоеточия пусто')
    else
    writeln(copy(s,i+1, len-i));
    end
    end.


    Примеры работы
    Код:

    Строка s=123:456
    456
    Строка s=123:456:456::456
    456
    Строка s=
    пустая строка
    Строка s=123456
    нет двоеточий
    Строка s=123:
    после последнего двоеточия пусто


    Ответ отправил: lamed (Профессор)
    Ответ отправлен: 22.10.2010, 15:03
    Номер ответа: 263609

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


  • Вопрос № 180411:

    Здравствуйте, уважаемые эксперты!
    Помогите, пожалуйста, решить задачу:

    Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Вывести только те слова, которые встречаются в тексте ровно один раз.

    (пользуюсь программой ABC)

    Отправлен: 22.10.2010, 15:01
    Вопрос задал: verona (2-й класс)
    Всего ответов: 2
    Страница вопроса »


    Отвечает Зенченко Константин Николаевич (Модератор) :
    Здравствуйте, verona!

    Смотрите приложение.
    вопросы задавайте в мини-форум.
    Удачи!

    Приложение:

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

    Ответ отправил: Зенченко Константин Николаевич (Модератор)
    Ответ отправлен: 22.10.2010, 17:52
    Номер ответа: 263613
    Украина, Киев
    Тел.: +38-097-238-60-03
    Адрес: Украина, Киев

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



    Отвечает lamed (Профессор) :
    Здравствуйте, verona! Функция pos не "знает" о словах, отделенных от других специальными символами-разделителями.
    Функция PurePos выдает ненулевое значение, если искомое слово в строке есть и не является частью какого-либо слова строки
    Функция FirstWord возвращает первое найденное слово в строке с разделителями. Если "пусто", значит, в строке нет ничего, кроме разделителей.
    Pascal ABC.
    Код:
    type
    TDelim = set of char;

    function FirstWord(s: string; delim: TDelim): string;
    // Первое (слева) слово в строке с разделителями
    //
    var
    i : integer;
    rez: string;
    begin
    i:= 1;
    while s[i] in delim do
    inc(i);

    rez : = '';
    while (i<=length(s)) and (not (s[i] in delim)) do
    begin
    rez := rez+s[i];
    inc(i);
    end;
    FirstWord := rez;
    end;

    function PurePos(subs: string; s: string; delim: TDelim): integer;
    // Позиция первого "чистого" вхождения слова в строку
    // например, слово <ФОРМА> не входит в строку <ИНФОРМАТИКА>
    var
    lenS : integer; // длина строки
    lenSubs: integer; // длина подстроки
    i : integer; // счетчик цикла
    begin
    lenS := length(s);
    lenSubs := length(subs);
    PurePos := 0;

    for i:= 1 to lenS-lenSubs+1 do
    begin
    if (copy(s,i,lenSubs)=subs) and
    ((i=1) or (s[i-1] in delim)) and
    ((i=lenS-lenSubs+1) or (s[i+lenSubs] in delim)) then
    begin
    PurePos := i;
    exit;
    end;
    end;
    end; { pos }

    // Новое
    var
    s, wd : string;
    delim : TDelim;
    printed: boolean;
    begin
    delim := delim+[',']+[';']+[' '];
    printed:= false;
    write('Enter string:');
    readln(s);

    s:= trim(s);
    if s='' then
    writeln('Sorry, your string is empty')
    else
    begin
    wd := FirstWord(s, delim); // нашли первое слово
    while (wd <> '') do
    begin
    delete(s, PurePos(wd, s, delim), length(wd)); // удалили первое слово
    if (PurePos(wd, s, delim) = 0) then // нет других - печатаем удаленное
    begin
    if printed then // для красивого вывода
    write(';')
    else
    printed := true;
    write(wd);
    end
    else
    while (PurePos(wd, s, delim)>0) do // удаляем все дубликаты
    delete(s, PurePos(wd, s, delim), length(wd));
    wd := FirstWord(s, delim); end;
    if printed then
    writeln
    else
    writeln('there are no unique words');
    end;
    end.

    Примеры работы
    Код:
    Enter string:123
    123
    Enter string:123 123
    there are no unique words
    Enter string:
    Sorry, your string is empty
    Enter string:123;456;1234
    123;456;1234

    Ответ отправил: lamed (Профессор)
    Ответ отправлен: 22.10.2010, 19:52
    Номер ответа: 263617

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


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

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

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

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

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

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

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


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

    В избранное