Другие языки программирования и технологии
Программа в Паскале
Нужно написать программу в Паскале. задание: Даны два слова. из первого удалить все буквы встречающиеся во втором слове. есть текст набранный мной: Program pr; var A,B:array [1..20] of char; i,j:integer; F,G:text; X,Y:string; begin assign(F,'111.txt'); assign(G,'222.txt'); reset(F); reset(G); read(F,X); read(G,Y); while not Eof(F) do begin for i:=1 to length(X) do write(A); end; while not Eof(G) do begin for j:=1 to length(Y) do write(B); end; for j:=1 to length(Y) do for i:=1 to length(X) do if A=B then delete(X,i,1); for i:=1 to length(X) do write(A); end. в файле 111.txt слово "мама" в файле 222.txt слово "папа" но программа не работает. где ошибка, или в чем я не прав?
а знаешь
1) когда ты прочитал файлы указатель становится в конец строки, в данном случае в конец файла
поэтому
while not Eof(G) do не имеет смысла значит массив A пустой
PS чтобы искать ошибки выводи НУЖНУЮ информацию на экран, после любой ее обработки.. .
кстати. . и A и И массивы пусты дабы эта комманда выводит инфу на экран write(B[ i ]); write(A[ i ]);? а они то не заполнены совсем
за дополнениями пишите на мейл
PSS НАРОД! полный путь файлов не нужен при одном если, если файлы лежат в одной папке с программой!!!!
1) когда ты прочитал файлы указатель становится в конец строки, в данном случае в конец файла
поэтому
while not Eof(G) do не имеет смысла значит массив A пустой
PS чтобы искать ошибки выводи НУЖНУЮ информацию на экран, после любой ее обработки.. .
кстати. . и A и И массивы пусты дабы эта комманда выводит инфу на экран write(B[ i ]); write(A[ i ]);? а они то не заполнены совсем
за дополнениями пишите на мейл
PSS НАРОД! полный путь файлов не нужен при одном если, если файлы лежат в одной папке с программой!!!!
Кое что уточним:
1) вот здесь assign(F,'111.txt'); нужно указывать полное имя файла, т. е. , например, assign(F,'C:\Мои документы \ Nemezis\111.txt');
2) файловую переменную F2 связать со стандартным устройством вывода - экраном дисплея с помощью пустой строки, т. е. Assign (F2, ' ');
3) открыть файл F2 на вывод т. е. Rewrite (F2);
4)эта строка read(F,X); должна находиться внутри цикла "пока не будет достигнут конец файла F"
В самой проге достаточно намудрил, трудно проследить за твоей логикой (извини!) . Посмотри, возможно написать так (внутри цикла ):
5) If A=B Then Write(F2, x - x) Else Write(F2, x);
так как . .delete(X,i,1); - это функция по работе со строковыми переменными, а у тебя A и B - это массивы.
ДЕРЗАЙ! :-)
1) вот здесь assign(F,'111.txt'); нужно указывать полное имя файла, т. е. , например, assign(F,'C:\Мои документы \ Nemezis\111.txt');
2) файловую переменную F2 связать со стандартным устройством вывода - экраном дисплея с помощью пустой строки, т. е. Assign (F2, ' ');
3) открыть файл F2 на вывод т. е. Rewrite (F2);
4)эта строка read(F,X); должна находиться внутри цикла "пока не будет достигнут конец файла F"
В самой проге достаточно намудрил, трудно проследить за твоей логикой (извини!) . Посмотри, возможно написать так (внутри цикла ):
5) If A=B Then Write(F2, x - x) Else Write(F2, x);
так как . .delete(X,i,1); - это функция по работе со строковыми переменными, а у тебя A и B - это массивы.
ДЕРЗАЙ! :-)
Program pr;
var A,B:array [1..20] of char; i,j:integer; F,G:text; X,Y:string;
begin
assign(F,'D:\111.txt');
assign(G,'D:\222.txt');
reset(F); reset(G); read(F,X); read(G,Y);
while not Eof(F) do
begin
for i:=1 to length(X) do
write(A);
end;
while not Eof(G) do
begin
for j:=1 to length(Y) do
write(B);
end;
for j:=1 to length(Y) do
for i:=1 to length(X) do
if A=B then delete(X,i,1);
for i:=1 to length(X) do
write(A);
end.
Проблема в том что ты долженнь указать путь к файлу вот так напримерь
D:\111.txt
D:\222.txt
или диск C
C:\111.txt
C:\222.txt
var A,B:array [1..20] of char; i,j:integer; F,G:text; X,Y:string;
begin
assign(F,'D:\111.txt');
assign(G,'D:\222.txt');
reset(F); reset(G); read(F,X); read(G,Y);
while not Eof(F) do
begin
for i:=1 to length(X) do
write(A);
end;
while not Eof(G) do
begin
for j:=1 to length(Y) do
write(B);
end;
for j:=1 to length(Y) do
for i:=1 to length(X) do
if A=B then delete(X,i,1);
for i:=1 to length(X) do
write(A);
end.
Проблема в том что ты долженнь указать путь к файлу вот так напримерь
D:\111.txt
D:\222.txt
или диск C
C:\111.txt
C:\222.txt
Похожие вопросы
- Программа на паскале! Помогите(бесплатно)
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Нужно написать программу на паскале
- Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм.
- Помогите составить программу на паскале!
- Время работы программы в Паскаль
- Объясните как работает программа в паскаль!!!
- помогите с программами в паскале
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале
- Люди как сделать легкую программу на паскале, и вобще какой язык программирования лучше для новичка