Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Работа с файлами

Автор: Lortine 21.12.2006 23:02

Вот такая суть задачи:
Есть текстовый файл, в котором меститься текст программы(по условию это предыдущия лаба, но это неиграет роли сейчас). Составить блок=схему программы. Одно из заданий оформить в виде подпрограммы:
...вот само задание:
Сформировать и вывести на экран текстовый файл в каком символы ";" заменить на "END_LINE"...(С этим я как бы разобрался). Подсчитать колличество больших и маленьких букв в каждой строке (вот это не могу додуматься)...
Если кто-то знает как это сделать или есть какой-то алгоритм.. огромная просьба.. завтра сдавать unsure.gif

Автор: мисс_граффити 21.12.2006 23:29

и что с этим посчитанным количеством делать?
заводишь 2 счетчика, идешь по строке. если буква большая - прибавляешь 1 к первому, если маленькая - ко второму.
или проблема с определением их размера?

Автор: Lortine 21.12.2006 23:33

ОФФ-топ:
мисс_граффити, читал темку там где препод процетировал твой пост?smile.gif Эть, а обошлось как? rolleyes.gif
у нас препод наверно браузером пользовать не умеет а главное учит программированию blink.gif
А я то думал, что только мне д******** преподы попались.. оказуеть

Надо потом вывести колличество больших и маленьких букв в каждой строчке... И если считывать посимвольно,(у меня не получаеться), как определять большая буква или маленькая? (в константах все переписать?)..
Можешь кодом выложить?

Автор: volvo 21.12.2006 23:38

Цитата
как определять большая буква или маленькая?
Буквы латинские?

Тогда
if ch = UpCase(ch) then { Буква большая }
else { Буква маленькая }


Если нужно не только латинские - переписываешь UpCase так, чтобы она корректно работала с кириллицей (поиск поможет, уже было на форуме)...

Автор: Lortine 21.12.2006 23:49

Нужна только латинь... спс.
Такой еще вопрос, чтобы считывало каждую строчку по порядку и сделать вывод для каждой строчки в конце как?

Volvo: (поиск поможет, уже было на форуме)...
Я не нашел, можешь ссылку на тему дать?

Автор: volvo 22.12.2006 0:00

Вот тут: http://forum.pascal.net.ru/index.php?s=&showtopic=3169&view=findpost&p=28432
есть функция для перевода всей строки в верхний регистр, она элементарно переделывается в функцию перевода одного символа...

Автор: Lortine 22.12.2006 0:08

Это та функия что в посте №9?.. Голова болит ужасно, если не затруднит помоги еще плз (кодом) с считыванием посимвольно каждой строчки и выводе на экран(не в файл) колличества больших и маленьких файлов в конце каждой строчки (чтобы считывало сначало первую строчку-- потом вторую и т.д.)

Автор: мисс_граффити 22.12.2006 0:23

...
readln(f,s);
for i:=1 to length(s) do
if s[i]....


Автор: Lortine 22.12.2006 0:36

далее пойдет условие проверки большая буква или маленькая?

Автор: мисс_граффити 22.12.2006 1:17

да...
это от него кусочек виднеется.

приведенный фрагмент - естественно, внутри цикла

while not(EOF(f)) do


Автор: Lortine 22.12.2006 6:03

Запутался окончательно, ушел спать wacko.gif ...
Ну их эти лабы...

Автор: Lortine 22.12.2006 16:34

Еще раз я не понял: ( меня 20 минут чтобы исправить... я вот что сделал

program lab4;
uses crt;
var f1,f2:text;
i,j,k,d:byte;
s,r:string;
m:string;
p:array [1..10] of byte;
begin
assign(f1,'D:\f1.txt');
assign(f2,'D:\f2.txt');
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
r:=' ';
k:=0;
readln(f1,s);
for i:=1 to length(s) do
begin
if s[i]=';' then r:=r+'END_LINE'
else r:=r+S[i];
if s[i] IN ['a'..'z'] then k:=k+1;
{ if s[i] in ['A'..'Z'] then d :=d+1; }
end;
writeln(f2,r);
write(f2,k);
writeln(f2,d);

end;
close(f1);
close(f2);
readln
end.


Большие не считает, СРОЧНО ХЕЛП.. и помогите плз одно из заданий переписать в виде подпрограмы..
У меня 20 минут

Автор: мисс_граффити 22.12.2006 16:42

а зачем ты подсчет заглавных букв сделал комментарием? и d не обнуляешь...
кстати, у меня что-то сомнение, что их количество влезет в byte

Автор: Lortine 22.12.2006 16:47

Убери коммент увидишь, что оно считает что-то не то... все-время очень большие цифры получаються..
7минутsmile.gif
Спасай unsure.gif

Точно, обнулись забыл)) вроде получилось))))))))))))))))))))