Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 08:04   #51
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Со списками не знаком, пошел в Гугл. Там наткнулся на такую информацию informatics.mccme.ru/moodle/mod/book/view.php?id=535

Либо я нашел не то, либо списки не есть то, что нам нужно, ведь мы не сможем обращаться к его элементам по символу строки.
PathTheir вне форума Ответить с цитированием
Старый 16.04.2013, 13:34   #52
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от PathTheir Посмотреть сообщение
...ведь мы не сможем обращаться к его элементам по символу строки.
Почему?
10 символов?
s-andriano вне форума Ответить с цитированием
Старый 02.05.2013, 18:12   #53
student___
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 12
По умолчанию Спасибо всем кто излагал свои мысли по поводу задачи

вот мой код. только на латинские буквы. но это устраивает меня. и вывод соответствующей диаграммы тоже присутствует
Код:
uses
	CRT,graph;

	var
        gd,gm,x0,y0,w:integer;
	t: text;
        s: string;
        a: array [0..255] of byte;
        h, i,j,q,k:integer;
        b:array [1..2000] of real;{сколько вхождений каждой буквы}
        mx,mVertical:real;
        c:array [1..2000] of char; {сама буква}

BEGIN
clrscr;
j:=1;
k:=1;
assign (t, 'int.pas');
reset  (t);

while not (eof (t)) do begin
readln (t, s);

for i := 1 to length (s) do begin
			s[i] := upcase(s[i]); {преобразуем букву в заглавную}
			inc (a[ord (s[i])]);
			if s[i] in ['A'..'Z'] then inc(h);{подсчет кол-ва всех вхождений всех встреч.букв}
			end;
end;
close (t);
 for i := 65 to 90 do
	if  (a[i] <> 0)   then begin
			inc(q); {сколько букв использованно}
			b[j]:=(a[i]/h); {записываем в массив относит.частоту буквы}
			c[k]:=chr(i);{записываем саму букву}
			inc(k);
			inc(j);
			writeln (chr(i), ' - ','частота -',( a[i]/h):3:3,',встречается раз-',a[i]);
			 end;

{----------diagramma------------------------}
gd:=0;
initgraph(gd,gm,'');
w:=13;{ширина столбцов}
x0:=15;{левый край диаграммы}
y0:=420;{нижний край}
mx:=b[1];
for j:=1 to q do
if b[j]>mx then mx:=b[j];{*находим максимум}
mVertical:=(y0-40)/mx;{масштаб по вертикале}
for j:=1 to q do
 begin
  setcolor(13);{цвет}
  Setfillstyle(5,12);{стиль заполнения}
  {рисуем параллелепипеды с заданной шириной, 
шагом и высотой соответственно значению частоты}
  Bar3d(x0+4*w*(j-1),y0-round(b[j]*mVertical),x0+w*(4*j-2),y0,15,topon);
  outtextXY(x0+4*w*(j-1),y0+20,c[j]);{выводим по низу буквы}
  str(b[j]:3:3,s);{преобразуем значение частоты в строку}
  outtextXY(x0+4*w*(j-1)+w-5,y0-round(b[j]*mVertical)-25,s);{выводим частоту выше столбика}
 end;

	readln;
END.
student___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать программу определяющую частоту появления каждого байта в файле. BadGuy Помощь студентам 1 02.04.2012 23:31
Из текста удалить все вхождения некоторого наперед заданного символа и символ, стоящий в тексте перед ним LittleStudent Помощь студентам 1 15.04.2011 00:46
Для каждого из слов указать, сколько раз оно встречается в тексте.(paskal) INZA Помощь студентам 1 14.12.2010 10:25
Найти (в процентах) частоту появления каждого из m наиболее часто встречающихся элементов sk1p Паскаль, Turbo Pascal, PascalABC.NET 2 26.09.2008 23:57
В чем проблема появления символа & в начале каждого заголовка итема созданного в рунтайте раздела меню? SkAndrew Общие вопросы Delphi 17 10.08.2008 21:44