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

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


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

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

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

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

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

Номер выпуска:1030
Дата выхода:14.02.2010, 17:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:332 / 198
Вопросов / ответов:3 / 4

Вопрос № 176583: Добрый вечер!!!!Помогите пожалуйста решить 2 задачки: Дана матрица n*m, 1)обменять местами первую строку с последней 2)обменять местами вторую строку с последней ...


Вопрос № 176586: Помогите, пожалуйста, решить задачу на текстовые файлы. Для каждого из слов первого предложения указать, сколько раз оно встречается в остальном тексте, а также указать номер предложения....
Вопрос № 176593: Строковые. 1. Дана строка. Выдать номер позиции,в котором буква ''а'' 5-й раз повторяется. 2. Даны слова в одной строке. Выдать слова,которые имеют четную длину. 3. Дана строка. Заменить все 1 на ''а''...

Вопрос № 176583:

Добрый вечер!!!!Помогите пожалуйста решить 2 задачки:
Дана матрица n*m,
1)обменять местами первую строку с последней
2)обменять местами вторую строку с последней

Отправлен: 08.02.2010, 22:31
Вопрос задал: angel.nero, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Andrew Kovalchuk, 4-й класс :
Здравствуйте, angel.nero.
Решение в приложении

Приложение:

-----
Временная неудача лучше временной удачи

Ответ отправил: Andrew Kovalchuk, 4-й класс
Ответ отправлен: 08.02.2010, 22:56
Номер ответа: 259321

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

  • Вопрос № 176586:

    Помогите, пожалуйста, решить задачу на текстовые файлы.

    Для каждого из слов первого предложения указать, сколько раз оно встречается в остальном тексте, а также указать номер предложения.

    Отправлен: 08.02.2010, 23:31
    Вопрос задал: aggressor92, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Patriotix-N, 5-й класс :
    Здравствуйте, aggressor92.
    Следуя вашему условия, в качестве входных и выходных данных я использовал текстовые файлы. Получая по одному символу из входного файла, формируются слова, которые сравниваются с базой слов из первого предложения.
    Так как нет указаний насчет прямой речи и сложности задания(типа текста) то есть ряд не учитываемых факторов. Так например если в предложении встретится знак ".":
    © Цитата: Patriotix-N
    Создаете базу слов из первого предложения(строка, заканчивающаяся ".", "?", "!").

    то это будет считаться концом предложения. Конечно, если у вас не просто художественный текст, то тогда вам придется нем ного усовершенствовать код.
    Также насчет прямой речи: "Hellow, World!". Дойдя до знака "!" будет закончено первое предложение, а дойдя до знака "." - второе. Так получится лишнее предложение, а если между кавычками и знаком конца предложения будут стоять слова автора, то их местоположение будет указано не правильно - на одно предложение больше, и далее пойдет аналогичный сдвиг для всех слов, увеличивающийся с каждой встречей прямой речи. Тут тоже потребуется усовершенствование кода...
    Текст модуля:
    Код:

    program str_2;

    function symbol(s:char):boolean; //Символы относящиеся к буквам
    begin
    symbol:=((s >= 'a') and (s<='z'))or
    ((s>='A') and (s<='Z'))or
    ((s >= #192) and (s<=#255))or //а-Я
    (s='''')//или заменить на 044
    end;

    function separator(sep:char):boolean; //Разделитель слов
    begin
    separator:=(sep = #32) or (sep=#9) or(sep=#13) or(sep=#10) or //Пробел, табуляци, перевод строки с возвратом каретки, перевод строки
    (sep=',')or (sep='-') or (sep='"') or (sep='.') or (sep='?') or (sep='!') ;
    end;

    var
    input,output:text;
    sntns_num,wrds_num,i,j:integer;
    words:array of string;//Слова из первого предложения
    w:string; //Текущее слово
    s:char; //Текущий символ
    outp_arr:array of array of integer; //Выходные данные
    outp_num:array of integer;//Количество вхождений слова
    outp_max:integer;//Максимальное количество вхождений
    begin

    assignfile(input,'input.txt'); //Привязываем файл
    reset(input); //открываем для чтения
    sntns_num:=1;//Номер предложения
    wrds_num:=0; //Количество слов в первом предложениии
    outp_max:=0;
    While not eof(input) do
    begin
    read(input,s); //Считываем символ из файла.
    if symbol(s) then //Проверяем буква ли это
    w:= w + s //Записываем в слово
    else
    begin
    if (w<>'') and separator(s) then //Мы только, что закончили считывaть слово
    begin
    if sntns_num=1 then //Если первое предложение
    begin
    SetLength(words,wrds_num+1); //Увеличиваем размер массива со словами
    words[wrds_num]:=w; //Добавляем слово
    wrds_num:=wrds_num+1; //Увеличиваем счетчик слов
    setlength(outp_num,wrds_num); //Количество найденных вхождений слова - устанавливаем длинну массива
    end
    else
    begin
    for i:=0 to wrds_num-1 do //Проверяем совпадения
    begin
    if w=words[i] then //Если наше слово есть в первом предложении
    begin
    if (outp_num[i]+1)>outp_max then //Если надо увеличивать
    begin
    setlength(outp_arr,wrds_num,outp_num[i]+1);//Увеличиваем размер массива
    outp_max:=outp_num[i]+1; //Устанавливаем новый максимальный размер
    end;
    outp_arr[i,outp_num[i]]:=sntns_num;//Записываем в выходные данные номер предложения, где встретилось слово
    outp_num[i]:=outp_num[i]+1; //увеличиваем количество найденных вхождений для данного слова.
    end;
    end;
    end;
    w:=''; //Обнуляем слово
    end;
    if (s='.') or (s='?') or (s='!') then sntns_num:=sntns_num+1; //Если встретился символ конца предложения - увеличиваем количество предложений
    end;

    end;
    close(input); //Закрываем файл
    assignfile(output,'output.txt');
    rewrite(output); //открываем для перезаписи
    for i:=0 to wrds_num-1 do //Выводим данные во второй файл
    begin
    Write(output,'Cлово '+'"'+words[i]+'"'+' найдено '+IntToStr(outp_num[i])+' раз');
    if outp_num[i]>0 then //Если слово встретилось в остальном тексте
    begin
    write(output,' в следующих предложениях: '+#13);
    for j:=0 to outp_num[i]-1 do //выводим список предложений
    begin
    write(output,#9); //табуляция
    write(output,IntToStr(outp_arr[i,j])+', ');
    end;
    end;
    write(output,#13);//перевод строки
    end;
    close(output);
    end.

    Пример работы про граммы:
    Входной файл:
    Код:

    1 Алиса сидела пеpед экpаном писишки, тщетно пытаясь
    сообpазить, что делать дальше.
    2 После четыpех часов
    набивки маловpазумительной статьи, подсунутой шефом, в
    глазах pябило, хотелось спать и вообще думалось плохо.
    3 Логичным казалось попытаться сохpанить введенное.
    4 Алиса
    помнила, что сначала надо было выбpать в меню пункт
    "File", поисками котоpого она и pешила заняться.
    5 После
    пяти минут pассматpивания экpана Алиса вспомнила, что шеф
    только что поставил по совету некоего Хакеpа pусский воpд
    вместо английского, как было сказано, "чтоб облегчить
    жизнь девочкам".
    6 Кто такой Хакеp, Алиса не знала, но
    после десятимину тных попыток вспомнить, как будет "Save"
    по-pусски, она pешила, что это кто-то очень нехоpоший, ну
    или по меньшей меpе очень стpанный, что, собственно, одно
    и то же - стpанностей она очень не любила.
    7 Сделанные усилия так утомили Алису, что на такой
    подвиг, как сообpазить, куда и как из этого воpда надо
    выходить, она уже способна не была, и ей оставалось
    только смотpеть на экpан в надежде, что войдет кто-нибудь
    менее усталый или более знающий и поможет ей выйти из
    затpуднения.
    8 Вpемя от вpемени только пpиходилось нажимать
    на клавишу Shift с наклейкой "Any key" (сделанной, по
    слухам, тем же Хакеpом) чтобы убpать с экpана летящие
    пpямо в лицо звезды.
    9 Так пpошло несколько минут.

    Выходной файл:
    Код:

    Cлово "Алиса" найдено 3 раз в следующих предложениях:
    4, 5, 6,
    Cлово "сидела" найдено 0 раз
    Cлово "пеpед" найдено 0 раз
    Cлово "экpаном" найдено 0 раз
    Cлово "писишки" найдено 0 раз
    Cлово "тщетно" найдено 0 раз
    Cлово "пытаясь" найдено 0 раз
    Cлово "сообpазить" найдено 1 раз в следующих предложениях:
    7,
    Cлово "что" найдено 7 раз в следующих предложениях:
    4, 5, 5, 6, 6, 7, 7,
    Cлово "делать" найдено 0 раз
    Cлово "дальше" найдено 0 раз

    Исправлено по просьбе автора ответа
    -----
    ∙ Отредактировал: Лысков Игорь Витальевич, Модератор
    ∙ Дата редактирования: 11.02.2010, 11:53 (время московское)

    -----
    Лучше знать ничего обо всем, чем все ни о чем.

    Ответ отправил: Patriotix-N, 5-й класс
    Ответ отправлен: 11.02.2010, 00:49
    Номер ответа: 259340

    Оценка ответа: 5

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

  • Вопрос № 176593:

    Строковые.
    1. Дана строка. Выдать номер позиции,в котором буква ''а'' 5-й раз повторяется.
    2. Даны слова в одной строке. Выдать слова,которые имеют четную длину.
    3. Дана строка. Заменить все 1 на ''а''

    Отправлен: 09.02.2010, 13:01
    Вопрос задал: Берг Анатолий Владимирович, Посетитель
    Всего ответов: 2
    Страница вопроса »


    Отвечает Пупорев Юрий Борисович, Специалист :
    Здравствуйте, Берг Анатолий Владимирович!
    Решение задач в приложении.

    Приложение:

    Ответ отправил: Пупорев Юрий Борисович, Специалист
    Ответ отправлен: 09.02.2010, 13:35
    Номер ответа: 259327

    Оценка ответа: 5

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

  • Отвечает Andrew Kovalchuk, 4-й класс :
    Здравствуйте, Берг Анатолий Владимирович.
    Решение прилагается

    Приложение:

    -----
    Временная неудача лучше временной удачи

    Ответ отправил: Andrew Kovalchuk, 4-й класс
    Ответ отправлен: 09.02.2010, 14:30
    Номер ответа: 259329

    Оценка ответа: 5

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

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

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

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

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

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

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

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


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

    В избранное