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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2011, 23:34   #1
demos261188
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 3
Восклицание Pascal, задача на массивы.

Нужно решить две задачки))))
#
Вычислить среднее геометрическое положительных элементов массива
a[1],a[2],...,a[40], имеющих четные индексы. Если таких элементов
нет, то вывести на печать признак 0.

#
Hайти наибольшие элементы каждой строки матрицы X(10*20) и записать их в массив Y.
demos261188 вне форума Ответить с цитированием
Старый 16.12.2011, 00:18   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

по первому... создаешь переменную (допустим srgm).. присваиваешь ей 1.... объявляешь переменную index = 0; .. в индекс будет заносится количество положительных переменных масива...
Код:
for i:=1 to n do
if (a[i] > 0) then
begin
srgm:= srgm*a[i];
inc(index);
end;
и в конце проверяешь... если индекс = 0, то выдаем в ответе 0, иначе берем power(srgm,1/index); корень нужной степени от srgm
по второму...

создаешь тот же массив y размерностью в количество строк x
приравниваешь элементы массива y к первым элементам (можно любым) строк x и затем перебираешь каждую строку массива х.
Код:
for i:=1 to 10 do
for j:=1 to 20 do
if (y[i] < a[i,j]) then
y[i]:=a[i,j];
примерно так....
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 16.12.2011, 00:53   #3
demos261188
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 3
По умолчанию

Я вот первую написал, можешь проверить?
program Dekio;
const
n = 40;
var
arr: array [1..n] of Integer;
i, pr, cnt: Integer;
begin
pr:=1; cnt:=0;
writeln('Enter ',n,' numbers:');
for i:=1 to n do
begin
readln(arr[i]);
if (arr[i]>0) and not odd(i) then
begin
inc(cnt);
pr:=pr*arr[i];
end;
end;
if cnt = 0 then
writeln('Result: ',cnt)
else
writeln('Result: ',exp(ln(pr)/cnt):5:2);
end.

А по второй можно подробней, весь тест проги??? Пожалуйста, ничего не успеваю, буду благодарен!
demos261188 вне форума Ответить с цитированием
Старый 16.12.2011, 01:00   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

ну... по мне так вот так правильнее
Код:
program Dekio;
const
n = 40;
var
arr: array [1..n] of Integer;
i, pr, cnt: Integer;
begin
pr:=1; cnt:=0;
writeln('Enter ',n,' numbers:');
for i:=1 to n do
begin
readln(arr[i]);
if (arr[i]<0) then
begin
inc(cnt);
pr:=pr*arr[i];
end;
end;
if cnt = 0 then
writeln('Result: ',cnt)
else
writeln('Result: ',power(pr,1/cnt):5:2);
end.
if (arr[i]>0) and not odd(i) then not odd(i) для чего? вторую... счас напишем...

P.S. для вставки кода есть специальный значок тег. решеточкой обозначен
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 16.12.2011, 01:17   #5
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

что то вроде этого...
Код:
uses
crt;
var
a:array[1..10,1..20] of integer;
y:array[1..10] of integer;
n,m,i,j,max,index:integer;
begin
n:=4;
m:=4;
for i:=1 to n do // ввдим значения матрицы
for j:=1 to m do
begin
Write('a[',i,',',j,']=');
read(a[i,j]); // или же перед write поставить строку:  a[i,j]:=random(20);  для рандомного ввода программно, не с клавы
end;          // закончили вводить значения матрицы

for i:=1 to n do    // вывод введенной матрицы
begin
    for j:=1 to m do
    write(a[i,j]:3);
    writeln();
end;


for i:=1 to n do  // ставим в y первые элементы строк массива a
y[i]:= a[i,1];

for i:=1 to n do  // если находим элемент побольше чем y[i] в строке а[i] то ставим его в y[i]
for j:=1 to m do
if (a[i,j] > y[i]) then
y[i] := a[i,j];

writeln();
for i:=1 to n do
writeln('y[',i,']=',y[i]);
end.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 16.12.2011, 22:23   #6
demos261188
Новичок
Джуниор
 
Регистрация: 15.12.2011
Сообщений: 3
По умолчанию

Слушай, а давай я тебе задачи дам по Паскалю, если поможешь, перекину денег на веб мани? Моё мыло demos261188@li.ru Жду отве на мыло))
demos261188 вне форума Ответить с цитированием
Старый 16.12.2011, 23:20   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

рисуй в аську... и на мыло тож скинул...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про массивы (pascal) -SG- Помощь студентам 1 25.11.2009 20:24
Pascal. Задача на одномерные массивы с использованием процедур Alt+F4 Помощь студентам 7 25.04.2009 00:48
[Pascal]: Задача на символьную строку, цикл, одномерные массивы., выручите плз Knife Помощь студентам 2 31.03.2009 21:41
Сложная задача на двумерные массивы(Pascal) sarutobi Помощь студентам 2 24.03.2009 23:06
Pascal. Массивы. Help. adelaida Помощь студентам 11 24.11.2008 17:02