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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 10:36   #1
*Катюшка*
 
Регистрация: 16.12.2011
Сообщений: 8
По умолчанию Работа с типизированными файлами ( Pascal / Delphi )

Здравствуйте! Помогите пожалуйста, кто может написать программы, в программировании я полный ноль в паскале рашьше понимала, а в делфи совсем запуталась...и в группе у нас никто не умеет писать...а зачет по информатике как-то надо получить
1)Дан файл f, компоненты которого являются действительными числами. Найти:
Сумму компонент файла f. Записать эту сумму
в конец файла. Отсортировать файл по возрастанию значений компонент.
2)Даны два текстовых файла f и g. Определить, совпадают ли компоненты файла f с компонентами файла g. Если нет, то получить номер первой строки и позицию первого символа в этой строке, в которых файлы различаются между собой. В случае, когда один из файлов имеет n компонент (n>0) и повторяет начало другого (более длинного файла), ответом должно быть число n+1.

Заранее, спасибо!
*Катюшка* вне форума Ответить с цитированием
Старый 16.12.2011, 10:42   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Что такое "компоненты файла"? Первый раз такой термин слышу. Вас точно там программированию учат? о_0
FaTaL вне форума Ответить с цитированием
Старый 16.12.2011, 10:58   #3
*Катюшка*
 
Регистрация: 16.12.2011
Сообщений: 8
По умолчанию

Вроде как...
ТЕКСТОВЫЕ ФАЙЛЫ
- компоненты – строки переменной длины, доступ только последовательный. Описание:
VAR <ИМЯ2>: TEXT;
НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ
- компоненты – двоичные блоки фиксированной емкости, информация из которых не интерпретируется, возможен прямой доступ. Описание:
VAR <ИМЯ3>: FILE;
*Катюшка* вне форума Ответить с цитированием
Старый 16.12.2011, 12:00   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Какому то Вас там неправильному программированию учат.
С текстовыми файлами удобнее всего работать через TStringList.
Например по первому заданию:
Код:
var
f : TStringList;
i : integer;
summ : integer;
begin
f := TStringList.Create;
f.LoadFromFile ('Путь к Вашему файлу');
summ := 0;
for i:=0 to f.Count -1 do
 summ := summ + StrToInt (f.Strings[i]);
f.Add (IntToStr(summ));
f.SaveToFile ('Путь к Вашему файлу');
f.free;
end;

Последний раз редактировалось FaTaL; 16.12.2011 в 16:52.
FaTaL вне форума Ответить с цитированием
Старый 16.12.2011, 13:47   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Какому то Вас там неправильному программированию учат.
почему - "неправильному" ? Скорее всего, их учат "чистому" Pascal.
В нём работа с файлами осуществляется ИСКЛЮЧИТЕЛЬНО через файловые переменные. Т.е. всё, как она написала.
Другой вопрос, что в Delphi добавлены компоненты, которые очень сильно облегчают работу с файлами.
Но подобное решение преподавательно может банально НЕ ПРИНЯТЬ!...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.12.2011, 16:05   #6
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Она пишет: "в паскале рашьше понимала, а в делфи совсем запуталась" значит всё таки изучают Delphi.
И где такое в паскале "компонент файла"? Много книг по паскалю прочитал, но нигде такого не встречал.
Ладно что толку спорить? Надо девушке помогать
FaTaL вне форума Ответить с цитированием
Старый 16.12.2011, 18:10   #7
*Катюшка*
 
Регистрация: 16.12.2011
Сообщений: 8
По умолчанию

>>Какому то Вас там неправильному программированию учат.
С текстовыми файлами удобнее всего работать через TStringList.
Например по первому заданию:

Не работает, не знает TStringList.

>>Но подобное решение преподавательно может банально НЕ ПРИНЯТЬ!...
Нашему преподаватлю нужен только ответ, саму программу он не смотрит.

К нашим заданиям было вложено, может введет в суть дела...
ПРОЦЕДУРА СОЗДАНИЯ ТЕКСТОВОГО ФАЙЛА
PROCEDURE CREATE(NAME:STRING);
VAR F:TEXT; {файловая переменная}
X:STRING;
BEGIN
ASSIGN (F,NAME); {файловая переменная связана с файлом с именем NAME}
{$I-}
REWRITE(F); {открыть файл на запись (перезапись)}
{$I+}
IF IORESULT=0 THEN {если файл открыт}
BEGIN
WRITELN('VVEDITE CHISLA (OSTANOVKA ‘’’’):');
READLN(X);
WHILE X<>’’ DO
{вводим строчки в цикле до пустой строки и записываем их в файл}

BEGIN
WRITELN (F,X);
READLN(X);
END;
CLOSE(F); {закрыть файл}
END;
END;
ПРОЦЕДУРА РАСПЕЧАТКИ СОДЕРЖИМОГО ТЕКСТОВОГО ФАЙЛА
PROCEDURE PRINT(NAME:STRING);
VAR F:TEXT; {файловая переменная}
X:STRING;
BEGIN
ASSIGN (F,NAME); {файловая переменная связана с файлом с именем NAME}
{$I-}
RESET(F); {открыть файл на чтение}
{$I+}
IF IORESULT=0 THEN {если файл открыт}
BEGIN
WHILE NOT(EOF(F)) DO {пока не достигнут конец файла }
BEGIN {читаем строчку из файла и выводим ее на консоль}
READLN(F,X);
WRITELN(X);
END;
CLOSE(F); {закрыть файл}
END;
END;
ПРОЦЕДУРА УДАЛЕНИЯ ИЗ ФАЙЛА ВСЕХ ЗВЕЗДОЧЕК (РЕЗУЛЬТАТ ЗАПИСЫВАЕТСЯ В НОВЫЙ ФАЙЛ)
PROCEDURE DEL(NAME,NAMENEW:STRING);
VAR F,FNEW:TEXT; {файловые переменные}
S:STRING;I:INTEGER;
BEGIN
ASSIGN (F,NAME);
ASSIGN (FNEW,NAMENEW); {файловые переменные связаны с файлами на диске}
{$I-}
RESET(F); {открыть файл name на чтение}
{$I+}
IF IORESULT=0 THEN BEGIN {если файл открыт}
{$I-}

REWRITE(F); {открываем на запись файл namenew}
{$I+}
IF IORESULT=0 THEN BEGIN {если файл открыт}
WHILE NOT(EOF(F)) DO BEGIN {пока не конец файла f}
READLN(F,X); {читаем строку}
I:= POS('*',S); {ищем первое вхождение ‘*’}
WHILE I<>0 DO BEGIN {пока есть ‘*’ в строке}
DELETE(S,I,1); {удаляем ‘*’ и ищем следующее вхождение}
I:= POS('*',S);
END;
WRITELN(FNEW,S); {преобразованную строку пишем в новый файл}
END;
CLOSE(FNEW); {закрыть файл}
END;
CLOSE(F); {закрыть файл}
END;
END;
ПРИМЕР ПРОГРАММЫ, ИСПОЛЬЗУЮЩЕЙ ПРИВЕДЕННЫЕ ВЫШЕ ПОДПРОГРАММЫ
BEGIN
CREATE('FILE1.TXT'); {создать файл}
PRINT('FILE1.TXT'); {распечатать файл}
DEL('FILE1.TXT‘, 'FILE2.TXT'); {преобразовать содержимое 1-го файла во 2-ой}
PRINT('FILE2.TXT'); {распечатать измененный файл}
READLN;
END.
*Катюшка* вне форума Ответить с цитированием
Старый 16.12.2011, 18:50   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

По работе с файлами в стиле Pascal - см. http://www.gunsmoker.ru/2011/10/pascal.html

По топику - в чём вопрос-то?

Если это "напишите мне программу", то сейчас придёт модератор и даст по башке за неумения читать правила раздела. Особенно обратить внимание на "СПЕЦИАЛЬНО ДЛЯ НОВИЧКОВ В ПРОГРАММИРОВАНИИ, СТУДЕНТОВ И УЧАЩИХСЯ!".

Если по башке не хочется - нужно задать вопрос, на который можно ответить.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 16.12.2011, 19:39   #9
*Катюшка*
 
Регистрация: 16.12.2011
Сообщений: 8
По умолчанию

Извините! и вправду не туда написала...
*Катюшка* вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Проблема с типизированными файлами Женька Good Помощь студентам 2 29.11.2011 22:13
Работа с типизированными файлами. Darangel Помощь студентам 1 17.05.2009 19:19