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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Добавление символа в конец файла, (переименовано)
сообщение
Сообщение #1





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

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


вот такая задача:

Описать процедуру:
add (t, c), добавляющую литеру с в конец текста t;

сообразил два варианта кода, но не знаю будут ли они правильны


procedure add (var t:tekst; c:char);
var x:char;
begin
append (t);
repeat read(t,x);
until not eof(t);
x:='c';
write(t,x);
close(t);
end



и второй


procedure add(var t:tekst; c:char);
var d:char; s:tekst;
begin
reset(t); rewrite(s);
while not eof(t) do
begin read(t,d); write(s,d) end;
write(s,c);
reset(s); rewrite(t);
while not eof(s) do
begin read(s,d); write(t,d) end
end;



из второго кода в частности интересует будет ли в участке
begin read(t,d); write(s,d) end;
write(s,c);
после прочтения текста из t и записи его в s операцией write(s,c) записываться С именно в конец текста s

помогите, очень надо. пишите и свои варианты


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


Гость






Цитата
сообразил два варианта кода, но не знаю будут ли они правильны
Проверь, узнаешь... Что, сложно создать файл и запустить свои процедуры? Заодно расскажи, что такое tekst...

Цитата
пишите и свои варианты
Угу. Напишем. Только после того, как ты приведешь название темы в порядок:
Цитата
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
Тебе кажется, что "Помогите с кодом, нужно проверить" - это информативно? Нажми на кнопку "Изменить" в первом посте, и поменяй название на более корректное.

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





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

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


Цитата(volvo @ 14.01.2009 11:49) *

Заодно расскажи, что такое tekst...



type tekst=file of text
там че хош могло быть

компилировать нет возможности, да и препод все равно порой говорит на рабочии проги что они работать не будут, он их тока на бумаге смотрит...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

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

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


type tekst=file of text
У тебя файл получается для хранения переменных типа text. А ты в них пишешь символы. Если хочешь использовать текстовый файл напиши так:
type tekst=text
(без "file of". А лучше вообще не вводи собственный тип и просто используй тип text.

Добавлено через 2 мин.
procedure add (var t:tekst; c:char);
var x:char;
begin
append (t);
repeat read(t,x);
until not eof(t);
x:='c';
write(t,x);
close(t);
end;

Я думаю, что тебе надо не символ 'c' записать в конец, а символ из переменной с;

Добавлено через 4 мин.
procedure add(var t:tekst; c:char);
var d:char; s:tekst;
begin
reset(t); rewrite(s);
while not eof(t) do
begin read(t,d); write(s,d) end;
write(s,c);
reset(s); rewrite(t);
while not eof(s) do
begin read(s,d); write(t,d) end
end;
Жутко надуманный вариант. Еще и работать не будет, потому что файловую переменную s нужно сперва связать с реальным файлом при помощи assign().


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


не, в задании сказано добавить в конец литеру С, т.е. было йцукен и надо что б стало йцукенС
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

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

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


Цитата
не, в задании сказано добавить в конец литеру С, т.е. было йцукен и надо что б стало йцукенС

Тогда исправь второй вариант. А вообще, вот:
Цитата
add (t, c), добавляющую литеру с в конец текста t;
Второй параметр процедуры add называется с и судя по твоему коду имеет тип char. Если добавить нужно именно символ 'c', то зачем этот второй параметр?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


так в задании было написано, это такое условие. я так понимаю что адд(т,с) - добавить С в Т.

вообще это задание из Пильщикова 15.21 б)
в нем есть ответ для процедуры, которая добавляет литеру С в начало текста Т:
 
procedure add(var t:tekst; c:char);
var d:char; s:tekst; {вспомагательный файл}
begin {копирование Т в С}
reset(t); rewrite(s);
while not eof(t) do
begin read(t,d); write(s,d) end;
{запись Ц и С в Т}
reset(s); rewrite(t);
write(t,c);
while not eof(s) do
begin read(s,d); write(t,d) end
end

вот такой прям там был ответ

вот тут
  begin read(t,d); write(s,d) end;
write(s,c);
после операций read и write куда C запишется в S??

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


Профи
****

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

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


Цитата
так в задании было написано, это такое условие. я так понимаю что адд(т,с) - добавить С в Т.
Вот и добавляй содержимое параметра C в T. А вообще, поступай как знаешь, это же твое задание.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






А что, обязательно надо открыть файл и прочитать его с начала до конца, вместо вот такого, например:

procedure add(var t: text; c: char);
begin
append(t); write(t, c); close(t);
end;

?

NajjZ
Тему я переименовал, но в следующий раз будь внимателен при выборе названия...

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





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

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


volvo, спасибо что открыл, теперь уж буду внимательней и уже с опытом ))))) твой совет меня устраивает, впринципе так должно работать. спасибо за совет good.gif

тока надо вместо write(t, c) писать write(t, 'c')

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

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

 





- Текстовая версия 4.05.2024 21:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name