Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 17:57   #1
Bree
 
Регистрация: 05.03.2010
Сообщений: 3
По умолчанию Pascal кодировочная книга

Здравствуйте! Помогите, пожалуйста, доработать кодировочную книгу.

Задается некоторое количество слов, которые надо закодировать в соответствии с местом, на котором они встречаются в текстовом файле. Если какое-то слово встречается в тексте меньшее количество раз чем просят закодировать, надо вывести повтор кода.

Т.е. например текстовый файл:
мама
папа
мама

необходимо закодировать:
мама
мама
мама

Должен получиться код: 1 3 1
У меня же получается: 1 3
Не могу сообразить как сделать, чтобы после последней встречи в файле данного слова она начинала считывать код сначала

Код:
program kodeboooook;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  windows;

type
imas=array[1..100] of integer;
textmas=array[1..20] of string;
var text:textmas;
    s:string;
    c:char;
    i,j,n,koltext,m,k:integer;
    f:TextFile;
    a:imas;
    empty,found:boolean;
    sht:set of char;

begin
setconsolecp(1251);
setconsoleoutputcp(1251);
sht:= [' ',',','.','(',')',':','?','!'];
  Write('введи кол-во слов в кодировочной книге: ');
  readln(n);
 //---------------------------------------------
 Assign(f,'Кодировочная книга.txt');
 Rewrite(F);
 writeln('введи ',n,' слов(a):');
 for i:=1 to n do
 begin
   Readln(s);
   Writeln(f,s);
 end;
 Close(F);
 //----------------------------------------------------
writeln ('сколько слов изволите кодировать?');
readln(e);
writeln('Введите ', m,' слов для кодирования, после каждого нажмите enter');
for i := 1 to m do
    readln(text[i]);
Reset(F);
i:=0;
found:=false;
 while not eof(F) do
 begin
   readln(f,s);
   inc(i);
    for j := 1 to m do
     if s=text[j] then a[i]:=i;
 end;
Close(F);
for i:=1 to n do
if a[i]<>0 then write(a[i],' ');
writeln;


readln
end.
Bree вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи кодировочная книга nikagru Помощь студентам 0 11.11.2012 21:28
Книга Kirill91 Помощь студентам 0 23.04.2012 17:11
Есть ли такая книга? [Pascal] White_foxSA Обсуждение статей 5 07.02.2010 00:39
В Поиске документация ( Книга ) Free pascal ThreeX Помощь студентам 2 31.07.2009 17:56