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

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

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

 
 Ответить  Открыть новую тему 
> Файлы
Emerson
сообщение 25.02.2007 17:37
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Александр

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


Ребят,помогите решить задачу по файлам(лекции не было,а задачу дали).Дан файл,содержащий текст и арифмитическое выражение вида axb,где x один из знаков +.-.*./. Выписать все арифмитические выражения и вычислить их значения
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 25.02.2007 17:42
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


Вот тебе вместо лекции: Файлы
Попробуй что-то сделать своими силами, потом и мы подключимся.. smile.gif

Вопрос по ограничению вычислений чисел, могут ли они быть не целыми?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Emerson
сообщение 25.02.2007 17:53
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Александр

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


спасибо за помощ,попробую поделать,если тебе не сложно попробуй тоже сделать,числа только целые
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Emerson
сообщение 26.02.2007 21:36
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Александр

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


Мучал мозг ) но не смог сделать,вот до чего дошел:


unit unit1;

interface
type
f=file of integer;



Procedure Prosmotr(var f1:f);
Procedure Pods4et(var f1:f);


implementation
Var
x,a,b:integer;
z:char;
Procedure Prosmotr;
Begin
reset(f1);
while not EOF(f1) do
begin
read(f1,z);
write(z);
writeln;
end;
closefile(f1);
end;
Procedure Pods4et;
var
s:string[20];
begin
reset(f1);

while not EOF(f1) do begin
readln(f1,s);
i:=0;
st:='';
while length(s)>0 do begin

repeat

delete(s,1,1)
until (s[1]>='0') and (s[1]<='9');
repeat
begin
i:=i+1;
st:=st+s[i];
until (s[i]<'0') or (s[i]>'9');
if s[i] in p then val(st,g,code);
delete (s,1,i);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.02.2007 21:42
Сообщение #5


Гость






Цитата
type
f=file of integer;
и
Цитата(Задание)
Дан файл, содержащий текст и арифмитическое выражение вида axb,где x один из знаков +.-.*./
друг другу противоречат - тебе не кажется?

Тебе все-таки надо работать с текстовым файлом, а не с типизированным...
Пример файла, с которым нужно чтобы программа отработала, можешь привести?
 К началу страницы 
+ Ответить 
Emerson
сообщение 26.02.2007 21:49
Сообщение #6





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Александр

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


Цитата(volvo @ 26.02.2007 21:42) *

и
друг другу противоречат - тебе не кажется?

Тебе все-таки надо работать с текстовым файлом, а не с типизированным...
Пример файла, с которым нужно чтобы программа отработала, можешь привести?

Ой ) я забыл ,я уже исправил.Мне дан фаил например :
asdasfhadf56-12 asuhfauw 62-30asdasd ,но я не знаю как это описать вот и застрял
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.02.2007 22:04
Сообщение #7


Гость






type
charset = set of char;

function pos_ex(chars: charset; s: string; start: integer): integer;
var i: integer;
begin
pos_ex := 0;
for i := start + 1 to length(s) do
if s[i] in chars then begin
pos_ex := i; exit;
end;
end;

var
f: text;
s: string;
p, start: integer;

begin
assign(f, 'arit_ex.txt');
reset(f);

while not eof(f) do begin
readln(f, s);
writeln(s);

start := 1;
repeat

p := pos_ex(['+', '-', '*', '/'], s, start);

if p <> 0 then begin
start := p;
writeln('p = ', p, ' s[p] = ', s[p]);
end;

until p = 0;
end;
close(f);
end.
Этот кусок читает файл построчно, и ищет все заданные символы операций... (Тестировалось на
Цитата
this is an example of file
it contains 12+126 and 45*15 expressions
) Тебе осталось от позиции P пройти по строке вперед и назад, пока встречаются ЦИФРЫ (не забывая контролировать выход за пределы строки, конечно), так ты выделишь нужные выражения... Ну, а потом вырезаешь их, передаешь для вычисления в другую функцию (в поиск, по слову Интерпретатор, там есть то, что тебе нужно), и продолжаешь искать в строке следующие вхождения операций...

Пробуй, что не получится - поможем...
 К началу страницы 
+ Ответить 
Emerson
сообщение 26.02.2007 22:09
Сообщение #8





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Александр

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


так спасибо,будемс пробовать yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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