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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Тимошенко Дмитрий
Статус: Студент
Рейтинг: 128
∙ повысить рейтинг >>
Botsman
Статус: Практикант
Рейтинг: 80
∙ повысить рейтинг >>
Micren
Статус: Практикант
Рейтинг: 60
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 888
от 22.05.2009, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 268, Экспертов: 48
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 167555: Здравствуйте, решите пожалуйста 1. Пусть дан массив из N элементов. Каждый отрицательный элемент заменить полусуммой тех двух элементов, которые стоят рядом с ним справа и слева. 2. Записать в виде процедуры определени...


Вопрос № 167.555
Здравствуйте, решите пожалуйста
1. Пусть дан массив из N элементов. Каждый отрицательный элемент заменить полусуммой тех двух элементов, которые стоят рядом с ним справа и слева.

2. Записать в виде процедуры определение максимального числа в числовом массиве и привести пример вызова этой процедуры из программы

. С помощью функции, определяющей большее из двух чисел, найти большее из четырех чисел

.В одномерном массиве целых чисел заменить все элементы, меньшие среднего арифметического, значением среднего арифметического, округленного до целого. Массив заполняется случайным образом
Отправлен: 17.05.2009, 19:26
Вопрос задала: Никоk (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, Никоk!
Первая:
Код:
CONST
N = 20;
VAR
ar: Array[1..N] of Integer;
i: Integer;
BEGIN
{Заполним случайными числами, иначе нужно вставить код для ввода чисел}
for i:=1 to N do
ar[i] := round((random - 0.5)*100);
WriteLn('Исходный массив');
for i:=1 to N do Write(ar[i]:5); WriteLn;
{Проблема в том, что делать, если соседи отрицательные, но решил,
что все подряд обрабатывать}
for i:=2 to N-1 do
if ar[i] < 0 then ar[i] := (ar[i-1] + ar[i+1]) div 2;
WriteLn('Преобразованный массив');
for i:=1 to N do Write(ar[i]:5); WriteLn;
END.

Вторая:
Код:
CONST
N = 20;

{Используются открытые массивы}
{В виде процедуры-функции}
function Max1(a: Array of Integer): Integer;
var i, i_max: Integer;
begin
i_max := 0;
for i:=1 to High(a) do
if a[i] > a[i_max] then i_max := i;
Max1 := a[i_max]
end;

{В виде процедуры}
procedure Max2(a: Array of Integer; var max_el: Integer);
var i, i_max: Integer;
begin
i_max := 0;
for i:=1 to high(a) do
if a[i] > a[i_max] then i_max := i;
max_el := a[i_max]
end;

procedure FillArray(var a: Array of Integer);
var i: Integer;
begin
for i:=0 to High(a) do a[i] := Random(200);
end;

procedure ShowArray(a: Array of Integer);
var i: Integer;
begin
for i:=0 to High(a) do Write(a[i]:5);
WriteLn
end;

VAR
ar: array[1..N] of In teger;
max: Integer;
BEGIN
FillArray(ar);
ShowArray(ar);
Max2(ar, max);
Writeln('Максимальный элемент, определенный с помощью процедуры: ', max);
WriteLn('Максимальный элемент, определенный с помощью функции: ', Max1(ar));
END.

Третья:
Код:
function max(a1, a2: Integer): Integer;
begin
if a1 > a2 then max := a1
else max := a2
end;

var
n1, n2, n3, n4: Integer;
BEGIN
Write('Введите первое целое число: '); ReadLn(n1);
Write('Введите второе целое число: '); ReadLn(n2);
Write('Введите третье целое число: '); ReadLn(n3);
Write('Введите четвертое целое число: '); ReadLn(n4);
WriteLn('Максимальн ое число из четырех: ', max(max(n1,n2), max(n3, n4)));
END.

Четвертая:
Код:
const
N = 20;
procedure FillArray(var a: Array of Integer);
var i: Integer;
begin
for i:=1 to N do a[i] := Random(200)
end;

procedure ShowArray(a: Array of Integer);
var i: Integer;
begin
for i:=0 to high(a) do Write(a[i]:5);
WriteLn
end;

function Midd(a: Array of Integer): Integer;
var
summ: Real; i: Integer;
begin
summ:=0;
for i:=0 to high(a) do summ:= summ + a[i];
Midd := round(summ / (high(a) + 1))
end;

procedure WorkArray(var a: Array of Integer; mid: Integer);
var i: Integer;
begin
for i:=0 to high(a) do
if a[i] < mid then a[i] := mid
end;

var ar: Array[1..N] of Integer;
BEGIN
FillArray(ar);
ShowArray(ar);
WriteLn('Замена элементов меньше среднего. Среднее = ', midd(ar));
WorkArray(ar, Midd(ar));
ShowArray(ar);
END.

---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
ICQ: 320096696
----
Ответ отправлен: 17.05.2009, 21:57

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

    Оценка за ответ: 1


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

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

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

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

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

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

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

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


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное