Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Орловский Дмитрий
Статус: Академик
Рейтинг: 4602
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2636
∙ повысить рейтинг »
Роман Селиверстов
Статус: Академик
Рейтинг: 2348
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1175
Дата выхода:02.05.2011, 23:30
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:177 / 173
Вопросов / ответов:1 / 1

Вопрос № 182935: Здравствуйте! Помогите написать программу на Borland Pascal: Дан массив вещественных чисел {A}n (n=20); нужно построить график A(n) ...



Вопрос № 182935:

Здравствуйте! Помогите написать программу на Borland Pascal:
Дан массив вещественных чисел {A}n (n=20); нужно построить график A(n)

Отправлен: 25.04.2011, 11:44
Вопрос задал: Pagon (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Сергей Бендер (Практикант) :
Здравствуйте, Pagon!

Поскольку вы на уточняющий вопрос не отвечаете, делаю предположение, что нужен символьный график. (Для вывода массива по номерам элементов это более вероятно.) Не стал выводить нулевую горизонтальную ось -- это чуть сложнее. Напишите, если надо.

Разумеется, если всё-таки надо в графическом режиме -- переделаю под graph.

Код:

const n=20;

var a:array[1..n] of real;
maxa,mina:real;
i,j:integer;

begin
{ Задание исодных данных. Этот блок может быть изменен
в зависимости от заданного спосба получения исходных данных }
for i:=1 to n do a[i]:=exp(-0.01*sqr(i));

{ Поиск максимального и м инимального значения в массиве }
maxa:=a[1]; mina:=a[1];
for i:=1 to n do
begin
if a[i]>maxa then maxa:=a[i];
if a[i]<mina then mina:=a[i];
end;

{ Стандартный текстовый экран -- 25 строк. Последняя строка будет
содержать номера элементов. Начинаем перебирать номера строк в графике
в обратном порядке от 23 до 0, т.к. график выводится сверху вниз.}
for j:=23 downto 0 do
begin
{ Вертикальная ось }
if j=23
then write('^')
else write('|');

{ Перебираем элементы массива }
for i:=1 to n do
{ Если его соотношение к дипазону значений массива
соответствует номеру строки }
if ((a[i]-mina)/(maxa-mina)*23>=j) and
((a[i]-mina)/(maxa-mina)*23<j+1)
{ то выводим знак }
then w rite('*')
{ иначе пробел }
else write(' ');

writeln;
end;

{ Номера элементов -- выводится каждый пятый }
write(' ');
i:=5;
while (i<=n) do
begin
{ Каждый номер выводится с форматом :5, т.е. чтобы
занимать все пять позиций }
write(i:5);
i:=i+5;
end;
readln;
end.

Ответ отправил: Сергей Бендер (Практикант)
Ответ отправлен: 30.04.2011, 23:34
Номер ответа: 266904
Тел.: 8-912-761-0437
Организация: Удмуртский ГосУнивеситет. г. Ижевск.
Абонент Skype: ostapbskype

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 266904 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное