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

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

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

 
 Ответить  Открыть новую тему 
> Задача по теме файлов + оператор Case Of + меню, Упорядочить по + и по - & определить сколько компонентов файла пре
сообщение
Сообщение #1


Новичок
*

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

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


Вообщем дали мне вот такую задачу, я как всегда в ауте из-за срока в 2 дня... lol.gif wacko.gif wacko.gif

Программа запрашивает имя файла и предоставляет пользователю меню из 3-х пунктов:
a) упорядочить по возрастанию
б) упорядочить по убыванию
в) определить, сколько компонентов файла представляют собой цифры, сколько - не заглавные буквы латинского алфавита, сколько являются восклицательными знаками.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну, и в чем проблема? Открывай файл как File Of Char и читай символы до победного EOF... В Case проверяй, какой символ был прочитан, и увеличивай соответствующий счетчик...

Я в FAQ выкладывал, насколько я помню, процедуру, сортирующую как по возрастанию, так и по убыванию, в зависимости от переданного параметра. Если в FAQ не найдешь - посмотри у меня на сайте, там точно есть...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Цитата(volvo @ 4.02.2006 19:26) *

Ну, и в чем проблема? Открывай файл как File Of Char и читай символы до победного EOF... В Case проверяй, какой символ был прочитан, и увеличивай соответствующий счетчик...

Я в FAQ выкладывал, насколько я помню, процедуру, сортирующую как по возрастанию, так и по убыванию, в зависимости от переданного параметра. Если в FAQ не найдешь - посмотри у меня на сайте, там точно есть...

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


Гость






countExclamation := 0;
countDigits := 0;
countLower := 0;
While not Eof(f) Do Begin
Read(f, Ch);
Case Ch Of
'!': Inc(countExclamation);
'0' .. '9': Inc(countDigits);
'a' .. 'z': Inc(countLower);
End;
End;
Где проблема?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


ну тебе не проблема, а мне уже от написанного плоха wacko.gif wacko.gif wacko.gif

Спасибо Агромное!!! smile.gif smile.gif smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


Короч, нарот, помогите... запарился я тут с этой задачей... нужно чтоб оператор выводил и буквы и цифры и сортировал их, получилось только цифры... а как буквы и цифры?

Вот задача (тока работает пока меню 1 пункта, 2 такой же, поменять-то знак, 3 тут написан, ещё не списаль =)))


Program chegevAra;
uses Crt;

Type ff=file of integer;
type Tvector=array [1..10] of integer;

Var
f1:ff;
Vector:Tvector;
c,b,i,j,a:integer;
Name:string;

Begin
ClrScr;
Randomize;
Writeln('Vvedite imya faila:');
Read(Name);
Assign(f1,Name);
{$i-}
Rewrite(f1);
{$i+}
If ioresult<>0 then rewrite(f1);
For i:=1 to 10 do
begin
a:=random(10);
write(f1,a);
end;

Close(f1);
Writeln('Vse chisla faila:');
reset(f1);
seek(f1,0);
while not Eof(f1) do

begin
read(f1,a);
writeln(a:3);
end;

writeln('Veberite interesuyushiy vas punkt:');
writeln('1)Yporyadochitb po Bozrastaniy.');
writeln('2)Yporyadochitb po yBbIvaniy.');
writeln('3)Opredelitb, skolbko komponentov...');
reset(f1);
read©;
case c of

1:begin
For i:=FILESIZE(F1)-1 downto 1 do
For j:=0 to i-1 do
begin
seek(f1,j);
read(f1,a,b);
if a>b then
begin
seek(f1,j);
write(f1,b,a);
end;
end;

close(f1);
reset(f1);
write('Otsortirivanniy file:');
for i:=1 to Filesize(f1) do

begin
read(f1,a);
write(a:3);
end;

close(f1);
end;
end;
READKEY;
END.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
получилось только цифры... а как буквы и цифры?
Буквы и цифры при использовании
Type ff=file of integer;
?
Никак...
Я же говорил, используй File Of Char...

К тому же, у тебя в программе есть несколько недочетов:
reset(f1);
seek(f1,0); { <-- Зачем это? Указатель и так в начале файла... }


Assign(f1,Name);
{$i-}
Rewrite(f1);
{$i+}
If ioresult<>0 then rewrite(f1);
{ А с чего это, если была ошибка в первый раз, то во второй она НЕ должна произойти? }


Цитата
2 такой же, поменять-то знак
А если без Copy/Paste?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Сделал задачу! Всё ништяк работает! good.gif
Пасиб тебе Вольво за подсказки! good.gif


Program chegevAra;

uses Crt;
Type ff=file of char;

Var
f:ff;
a1,a2,a3,c,i,j:integer;
Name:string;
s,a,b:char;

Begin
ClrScr;
Randomize;
Writeln('Vvedite imya faila:');
readln(name);
assign(f,name);
Rewrite(f);
Writeln('Zapolnite file');
For i:=1 to 10 do
begin
Readln(a);
Write(f,a);
end;
Seek(f,0);

writeln('Veberite interesuyushiy vas punkt:');
writeln('1)Yporyadochitb po Bozrastaniy.');
writeln('2)Yporyadochitb po yBbIvaniy.');
writeln('3)Opredelitb, skolbko komponentov...');
reset(f);
read©;
case c of

1:begin
For i:=FILESIZE(F)-1 downto 1 do
For j:=0 to i-1 do
begin
seek(f,j);
read(f,a,b);
if a>b then
begin
seek(f,j);
write(f,b,a);
end;

end;
close(f);
reset(f);
write('Otsortirivanniy file:');
for i:=1 to Filesize(f) do
begin
read(f,a);
write(a:4);
end;
close(f);
end;

2:begin
For i:=FILESIZE(F)-1 downto 1 do
For j:=0 to i-1 do
begin
seek(f,j);
read(f,a,b);
if a<b then
begin
seek(f,j);
write(f,b,a);
end;

end;
close(f);
reset(f);
write('Otsortirivanniy file:');
for i:=1 to Filesize(f) do
begin
read(f,a);
write(a:3);
end;
close(f);
end;

3: Begin
a1:=0;
a2:=0;
a3:=0;
while not Eof(f) do begin

read(f,s);
case s of
'!':Inc(a1);
'0'..'9':Inc(a2);
'a'..'z':Inc (a3);
end;
end;
Writeln('In file');
Writeln('skolko cifr: ',a2);
Writeln('skolko bukvy alfavita:', a3);
Writeln('skolko !: ',a1);
close(f);
end;
end;
READKEY;
END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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