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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 13:25   #1
straaannik
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 20
По умолчанию Pascal

люди у меня есть пара задач по паскалю которые я не могу понять.. уже кучу разобрал и понял с помощью форумов и книжек для чайников а вот с этими запарка помогите пожалуйста.
1. массивы.
Дана действительная квадратная матрица n (n - натуральное число). заменить нулями все элементы матрицы, находящиеся на ее главной и побочной диагоналях.
2. подпрограммы.
Написать и протестировать функцию с одним параметром, одномерным массивом чисел, значение которого равно количеству неотрицательных элементов массива.
Заранее благодарен.
straaannik вне форума Ответить с цитированием
Старый 17.12.2010, 14:26   #2
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Не отписывается потому что надоели ваши однотипные задачи
Например первая, ну что вам не понятно? проходитесь по массиву обычными двумя (т.к. массив двумерный) циклами for и если элемент лежит на главной или побочной диагонали, присваиваете этому значению ноль.
Не знаете как определить лежит ли элемент на гл. или побочн. диагонали? Напишите матрицу скажем 3-го порядка на листке в общем виде, подписав индексы и найдите закономерность главной и побочной диагонали и все
Условие второй я не понял, я сейчас плохо соображаю - спать хочу
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 17.12.2010, 14:29   #3
Ol'ga_new
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 125
По умолчанию

По первой могу сказать, что главная диагональ-это когда индексы эл-то вравны, (a11,a22,a33,a44,..., ann), а побочная а1(n), a2(n-1),a3(n-2),..,an(1).
А по второй есть предположения? а то что то не понятно, что один параметр функции - это массив?
Ol'ga_new вне форума Ответить с цитированием
Старый 17.12.2010, 14:35   #4
straaannik
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 20
По умолчанию

Ol'ga_new
предположения есть что во второй массив, в котором надо посчитать все положительные элементы
straaannik вне форума Ответить с цитированием
Старый 17.12.2010, 14:36   #5
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Цитата:
значение которого равно количеству неотрицательных элементов массива.
Наверное : значение которой. Т.е. функция возвращает количество неотрицательных элементов
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 17.12.2010, 14:49   #6
straaannik
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 20
По умолчанию

Niro
Вместо того что бы так говорить лучше бы помог разобраться так как не все такие умные как ты.. мне это интересно я сижу думаю рою различные источники а не так как некоторый просто выкинули на форум и ждут ответа
straaannik вне форума Ответить с цитированием
Старый 17.12.2010, 15:24   #7
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Код:
Program matrix01;
const NMax = 10;
var
 M : array[1..NMax,1..NMax] of real;
 i,j : Integer;
begin
for i:= 1 to NMax do
 for j:= 1 to Nmax do
  M[i,j] := 100*random();

for i:=1 to NMax do
 begin
 M[i,i] := 0;
 M[i,NMax-i+1] := 0;
 end;
  
writeln('Результат: ');
for i:= 1 to NMax do
 begin
 for j:= 1 to Nmax do
  write(M[i,j]:5:2,#9);
 writeln;
 end;
end.
Код:
Program function01;
type ai = array[1..10] of Integer;

function Func1(a:ai):Integer;
var
 i,Counter : Integer;
begin
Counter := 0;
for i:=1 to 10 do
 begin
 if a[i] > 0 then Counter := Counter + 1
 end;
Func1 := Counter;
end;

var
 i : Integer;
 a : ai;
begin
for i:= 1 to 10 do
 a[i] := -50 + random(100);

writeln(Func1(a));
end.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 17.12.2010, 15:29   #8
straaannik
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 20
По умолчанию

вот тут что то пробую набросать по первой задаче и в ступоре как хотя бы в главной диагонале заменить числа на 0...
program massiv;
var i,j,n:integer;
mas:array[1..n,1..n] of integer;
begin
writeln('razmer matrici');
readln(n);
for i:=1 to n do
begin
straaannik вне форума Ответить с цитированием
Старый 17.12.2010, 15:31   #9
straaannik
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 20
По умолчанию

Z1000000
вопрос такой по первой задаче почему
"const NMax = 10;"
там же порядка n
straaannik вне форума Ответить с цитированием
Старый 17.12.2010, 15:43   #10
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
я сижу думаю рою различные источники
это конечно похвально
Но видно плохо роете - без обид
если вы посмотрите на первый пример от z100000, то добавите еще одну строчку к вашему
Цитата:
for i:=1 to n do
Ну а дальше условие главной и побочной диагонали
и всего одна строчка замена элемента нулем
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal Denya_Dimov Помощь студентам 2 30.10.2010 16:10
Turbo Pascal or Pascal ABC Ikram Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 13:44
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37