|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.03.2009, 23:24 | #1 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
Как вывести на экран... (Делфи)!!!
Вывести на экран количество каждой из содержащихся в строке латинских и русских прописных букв в порядке их появления.
Если вы напишете программу то пожалуйста с коментариями, а то лежал в больнице пропустил эти темы и не понимаю, или же просто обьясните как и чем воспользоваться, я знаю что тут нужны строковые типы. ОЧЕНЬ ПРОШУ ПОМОГИТЕ ЕСЛИ НЕ С ПРОГОЙ ХОТЯ БЫ ОБЬЯСНИТЕ P.S. я на первом курсе |
08.03.2009, 23:54 | #2 | |
Ламер z:]
Пользователь
Регистрация: 19.01.2009
Сообщений: 60
|
Цитата:
|
|
09.03.2009, 00:34 | #3 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
A для русских букв массив должен быть одельный? И Boolean или char?
Пожалуйсто если не трудно напишите программу( я не халявщик просто время очень сильно поджимает), очень вас прошу, от нее зависит моя модульная аттестация((( |
09.03.2009, 00:45 | #4 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
Программа считывает свой исходник на паскале (как заданный текст) и выводит на экран прописные буквы латинского и русского алфавитов в порядке убывания частоты появления в тексте. Вот мне друг дал чето похожее но только в Паскале
PROGRAM q90010; VAR a: packed array[0..255]of integer; c:char; f:text; i,m:integer; BEGIN FOR i:=0 TO 255 DO a[i]:=0; ASSIGN(f,'q90010.pas'); RESET(f); WHILE not eof(f)do BEGIN READ(f,c); INC(a[ORD©]); END; CLOSE(f); m:=0; FOR i:=0 TO 255 DO IF m<a[i] THEN m:=a[i]; WHILE m>0 DO BEGIN FOR i:= 65 TO 160 DO IF(i<91)OR(i>127)THEN IF m=a[i] THEN WRITE(' ',CHAR(i),':',a[i]:5); m:=m-1; END; READLN; END. Исправьте что тут не так для делфи |
09.03.2009, 01:41 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
да в принципе, для консольного приложения Delphi всё нормально...
Только сохраните в файлик q90010.dpr Ещё подправил для обработки русских буковок. (в windows кодировке win-1251) ПРОПИСНЫЕ русские буквы расположены в диапазоне 192-223) Код:
Нет. Лучше русские буковки в коде программы не писать. Считаются они правильно, но выводить их через WRITE не получится - надо преобразовывать в OEM кодировку... Это несложно, но, мне кажется, что для Вашего уровня это будет трудно для понимания... Последний раз редактировалось Serge_Bliznykov; 09.03.2009 в 01:47. |
09.03.2009, 02:31 | #6 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
Огромное спасибо, но у меня есть несколько во просов по коду
INC(a[ORD(c)]); //Что это и что оно делает? for i := 65 to 223 do //откуда взялись числа 65 и 223 if (i < 91) or (i > 191) then //и откуда 91 и 191? Что все эти цифры обозначают? И много тут мне переделывать чтобы не из файла считал а из строчки введеной пользователем? Заранее благодарен |
09.03.2009, 03:15 | #7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
почитайте - http://ru.wikipedia.org/wiki/ASCII Цитата:
вместо этого вставить код: Код:
|
||
09.03.2009, 14:20 | #8 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
Еще раз спасибо за обьяснения, я сделал как вы и сказали, но при вводе строки она сразу вылетает, и я так и не понял что делает эта строка
INC(a[ORD(c)]); ? program q90010; {$APPTYPE CONSOLE} var s: string; a: packed array[0..255] of integer; c: char; f: text; i, m: integer; begin WriteLn('Vvedite stroku: '); ReadLn(s); for i:=1 to Length(s) do INC(a[ord(s[i])]); for i := 0 to 255 do a[i] := 0; begin READ(f, c); INC(a[ORD(c)]); end; m := 0; for i := 0 to 255 do if m < a[i] then m := a[i]; while m > 0 do begin for i := 65 to 223 do if (i < 91) or (i > 191) then if m = a[i] then WRITE(' ', CHAR(i), ':', a[i]: 5); m := m - 1; end; WRITELN; READLN; end. |
09.03.2009, 14:36 | #9 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
я уже решал подобную задачу, только выводил процентное содержание кадой буквы в тексте
http://programmersforum.ru/showthrea...F6%E5%ED%F2%FB в общем написал, небольшая проблема с русскими буквами - выводит постоянно количество одной и той же буквы при ее встрече - не могу никак понять, почему: Код:
Последний раз редактировалось capta1n; 09.03.2009 в 15:33. |
09.03.2009, 15:08 | #10 | |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
Цитата:
Ты мне лучше скажи что не так с моим кодом... |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как вывести bmp изображение на экран?? | lexuss | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 09.04.2011 00:02 |
Как вывести на экран двумерный массив случайным образом? | Stager | Общие вопросы C/C++ | 5 | 07.01.2009 20:53 |
как вывести все имеющиеся файлы в каталоге на экран? | Almost456 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.12.2008 20:44 |
Как вывести на экран имена файлов текущего каталога? (С++) | Darw1n | Помощь студентам | 1 | 13.12.2008 11:10 |
Как вывести из текстового файла на экран русский текст? | Mischa | Помощь студентам | 8 | 12.03.2008 06:23 |