![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
![]()
Вывести на экран количество каждой из содержащихся в строке латинских и русских прописных букв в порядке их появления.
![]() Если вы напишете программу то пожалуйста с коментариями, а то лежал в больнице пропустил эти темы и не понимаю, или же просто обьясните как и чем воспользоваться, я знаю что тут нужны строковые типы. ОЧЕНЬ ПРОШУ ПОМОГИТЕ ЕСЛИ НЕ С ПРОГОЙ ХОТЯ БЫ ОБЬЯСНИТЕ P.S. я на первом курсе |
![]() |
![]() |
![]() |
#2 | |
Ламер z:]
Пользователь
Регистрация: 19.01.2009
Сообщений: 60
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.09.2008
Сообщений: 11
|
![]()
A для русских букв массив должен быть одельный? И Boolean или char?
Пожалуйсто если не трудно напишите программу( я не халявщик просто время очень сильно поджимает), очень вас прошу, от нее зависит моя модульная аттестация((( |
![]() |
![]() |
![]() |
#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. Исправьте что тут не так для делфи |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
да в принципе, для консольного приложения Delphi всё нормально...
Только сохраните в файлик q90010.dpr Ещё подправил для обработки русских буковок. (в windows кодировке win-1251) ПРОПИСНЫЕ русские буквы расположены в диапазоне 192-223) Код:
Нет. Лучше русские буковки в коде программы не писать. Считаются они правильно, но выводить их через WRITE не получится - надо преобразовывать в OEM кодировку... Это несложно, но, мне кажется, что для Вашего уровня это будет трудно для понимания... ![]() Последний раз редактировалось Serge_Bliznykov; 09.03.2009 в 01:47. |
![]() |
![]() |
![]() |
#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? Что все эти цифры обозначают? И много тут мне переделывать чтобы не из файла считал а из строчки введеной пользователем? Заранее благодарен |
![]() |
![]() |
![]() |
#7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
почитайте - http://ru.wikipedia.org/wiki/ASCII Цитата:
вместо этого вставить код: Код:
|
||
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
![]()
я уже решал подобную задачу, только выводил процентное содержание кадой буквы в тексте
http://programmersforum.ru/showthrea...F6%E5%ED%F2%FB в общем написал, небольшая проблема с русскими буквами - выводит постоянно количество одной и той же буквы при ее встрече - не могу никак понять, почему: Код:
Последний раз редактировалось capta1n; 09.03.2009 в 15:33. |
![]() |
![]() |
![]() |
#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 |