Воскресенье, 19.05.2024
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  
Форум » Обсуждение задач » Новые задачи » какая русская буква встречается чаще

какая русская буква встречается чаще
IXOXOДата: Суббота, 12.05.2012, 06:00 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Программа написана и работает, но только в "Turbo Pascal АВС" из-за "Chr". Как заставить работать ее в "Turbo Pascal 7.0"?

№ вар. Задание M<=10 N<=-- Файл с данными RUS.TXT
Одномерный массив строк длиной по 80 символов заполнить из файла. Используя функцию, найти, какая русская буква (не различая прописные и строчные) встречается чаще. К функции обращаться, передавая ей строчную и прописную буквы и символьную строку массива. Распечатать исходный массив процедурой.
Какая русская буква встречается чаще

PROGRAM MaxChar;
TYPE
Elem= string[33];
mas = array[1..10,1..80] of char;
mas2 = array[1..32] of integer;
CONST
Zad: Elem='Задайте число элементов массива: ';
VAR
AR: mas2;
A: mas;
M,max,maxn,I,J : integer;
t: char;
Fin, Fout : text;

{ Процедура ввода размера массива }
PROCEDURE InpMN(Txt:Elem; MaxK:integer;
Var Kol:integer);
Begin
WriteLn; Write(Txt);
Repeat
Readln(Kol);
If Kol>MaxK then
Write('Можно ввести не более ',MaxK,'. Задайте снова: ');
until Kol<=MaxK;
End;

{ Процедура вывода в файл }
PROCEDURE PrintMas(Txt: string; A: mas;
NKol: integer);
VAR i,j : integer;
Begin
Writeln(Fout,Txt);
For i:= 1 to NKol do
for j:=1 to 80 do
begin
Write(Fout,A[i][j]);
end;
End;

{Функция вернет количество элементов номер _i в строке N массива A}
function EQ(_i, N :integer; A: mas): integer;
var _j,ar: integer;
begin
for _j:=1 to 80 do
if ( (A[N,_j]=Chr(191+_i)) or (A[N,_j]=Chr(223+_i)) ) then {если A[N,j]= А или а}
begin
ar:=ar+1;
end;
EQ:=ar;
end;

BEGIN { Основная программа }
InpMn(Zad,10,M); {Задать число строк (10 макс)}
Assign(Fout,'Lab7.txt');
ReWrite(Fout);
Assign(Fin,'_Data\Rus.txt');
ReSet(Fin);

for i:=1 to M do
for j:=1 to 80 do
Read(Fin,A[i][j]);
Close(Fin);

PrintMas (' Исходный массив:', A,M);

For j:=1 to M do
for i:=1 to 32 do
AR[i]:=AR[i]+EQ(i, j, A);{добавляет количество
символов номер i в алфавите, содержащихся
в строке номер j данного текстового массива}

for i:=1 to 32 do
write(AR[i],'; ');

for i:=1 to 32 do
if(AR[i]>max) then
begin
max:=AR[i];
maxn:=i;
end;
t:=chr(maxn+191);
Writeln(Fout);
Writeln(Fout);
Write(Fout,'Наиболее часто (',max,' раз) встречается буква ', t);

Close(Fout);
END.
 
SeqularДата: Среда, 22.08.2012, 23:05 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Не пробовали
Code
Uses CRT;
после Program написать?


Поддерживаю также проект сообщество молодых сисадминов
 
Форум » Обсуждение задач » Новые задачи » какая русская буква встречается чаще
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;