IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> C++ текстовые файлы, Pascal-->C++
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Вот задание
________________________________________________________________________________
________________________________________________________
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 700 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT. Написать программу, которая:
- выводит текст на экран дисплея;
- по нажатию произвольной клавиши поочередно выделяет в тексте заданные слова (заданные слова вводить с клавиатуры).
________________________________________________________________________________
_________________________________________________________

Вот код паскаля помогите мне пожалуйста

uses crt;

const
alpha = ['a'..'z', 'A'..'Z'];
var
ft: text;
s: string;

a, b: array[1 .. 50] of string;

line_count, n, i,j,f:integer;
ch:byte;

p, len: byte;
start: integer;
ss, st: string;
isgray: boolean;

procedure print_all;
var i: integer;
begin
clrscr;
for i := 1 to line_count do begin
isgray := true; textcolor(lightgray);
st := a[i];
for len := 1 to length(a[i]) do
if st[len] = '~' then begin
if isgray then begin
textcolor(lightred);
isgray := false;
end
else begin
textcolor(lightgray);
isgray := true;
end
end
else write(st[len]);

writeln;
end;
readln;
end;

begin
Assign(ft,'text700.dat');
reset(ft);

clrscr;

line_count := 0;
while not eof(ft) do begin
readln(ft,s); writeln(s);
inc(line_count);
a[line_count]:=s;
end;

close(Ft);

write('n='); readln(n);
writeln('new word - new line');
for i:=1 to n do readln(b[i]);

clrscr;
for i:=1 to line_count do begin
p := 0; st := a[i];

for j := 1 to n do { !!! }
repeat
start := p;
p := start + pos(b[j], copy(st, start + 1, 255));
if
(
(p <> start)
and
((p = 1) or ( (p > 1) and not(st[p-1] in alpha)))
and
(
(p + pred(length(b[j])) = length(st)) or
((p + pred(length(b[j])) < length(st)) and
not(st[p+length(b[j])] in alpha))
)
) then

begin
ss := a[i];

delete(st, p, length(b[j]));
insert('~'+b[j]+'~', st, p);

inc(p, length(b[j]));
a[i] := st;
print_all;

a[i] := ss;
st := ss;
end;
until p = start;
a[i] := st;

end;
readln;
end.




Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ага, больше делать нечего, только извращаться в ПЕРЕВОДЕ программ с Pascal на C++... Попробуй, сделай. Чего же ты сам не делаешь этого?

1000 раз повторять? НЕ ПЕРЕВОДИТЕ программы с одного языка на другой: хотите нормальной функциональности - пишите СРАЗУ на нужном языке... НЕВОЗМОЖНО с Паскаля перенести на С программу, работающую со строками. А если и возможно - она будет корявой и в 3 раза больше по размеру.

Поиск тоже не для красоты:
Работа с файлом, С
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


VOLVO ну не мучай меня ты же профи тебе это сделать раз плюнуть ну пожалуйста
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 19.12.2017 5:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"