IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите пожалуйста студентки, массивы
-Даша-
сообщение 18.06.2008 5:38
Сообщение #1


Гость






1)Ввести 10 целых чисел, вычислить сумму чисел, начиная с минимального до последнего элемента.
2)Сформировать массив [4x6], поменять местами столбец с макс. элементом и столбец с минимальным элементом.
3)Сформировать массив [5x5], найти максимальнй элемент, находящийся выше главной диагонали и минимальный элемент, наход-ся ниже главной дипгонали.


Всем очень признательна заранее за помощь smile.gif
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 6:01
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Задачи ведь несложные..
В FAQ'e есть пример циклов, которые проходят по элементам выше\ниже диагоналей; задач на минимум и максимум тоже решалось очень много. Почитай темы и попробуй сделать что-нибудь, а потом, если что, поправим))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 18.06.2008 6:18
Сообщение #3


Гость






Цитата(Айра @ 18.06.2008 6:01) *

Задачи ведь несложные..
В FAQ'e есть пример циклов, которые проходят по элементам выше\ниже диагоналей; задач на минимум и максимум тоже решалось очень много. Почитай темы и попробуй сделать что-нибудь, а потом, если что, поправим))


Ну тогда поправляй (сегодня просто надо сдавать эти задачки):
1)вот что я сделала, только не смейтесь:
uses crt;
var
a:array[1..10] of integer;
min,k,i,sum,n,s:integer;
begin
randomize;
clrscr;
for i:=1 to 10 do
begin
a[i]:=random(100)-5;
end;
min:=a[1];
for i:=1 to 10 do
begin
if a[i]<min then min:=a[i];
end;
write('Massiv sostoit:');
for i:=1 to 10 do
begin
write (a[i], ' ');
if min:=a[i] then write (i,' '){вот здесь выводиться номер минимального элемента, а как его запомнить в виде отдельной переменной не знаю?}
end;
writeln;
writeln
begin
s:=0;
k:=min; {как присвоить переменной К номера минимального элемента?}
for i:=k to 10 do
s:=k+a[i];
writeln;
writeln ('Summa elementov',s);
end;
readkey;
end.
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 6:46
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Вот:
uses crt;
var
a: array[1..10] of integer;
min,k,i,s:integer;
begin
randomize;
for i:=1 to 10 do a[i]:=random(15)-5;
min:=a[1];
for i:=1 to 10 do
if a[i]<min then
begin
min:=a[i];
k:=i; //вот здесь ты запомнила номер минимума
end;
write('Massiv sostoit:');
for i:=1 to 10 do write (a[i], ' ');
writeln;
s:=0;
for i:=k to 10 do s:=s+a[i]; // а тут все поскладывала
writeln ('Summa elementov: ',s);
readln;
end.


добавлено: я изменила значение random, чтоб можно было самой посчитать и проверить, так что это не суть важно..
Заметь, что если в операторе цикла\условия\и т.п. выполняется только один оператор, то begin\end можно не писать..

Сообщение отредактировано: Айра - 18.06.2008 6:50
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 18.06.2008 6:55
Сообщение #5


Гость






Ой Айра огромное тебе спасибо за помощь! Очень хорошо всё объяснила.
С этой программкой разобралась. Сейчас попробую сделать оставшиеся 2.
Надеюсь ты мне поможешь, ну или кто-нибудь другой.
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 7:00
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


загляни сюда, если еще не смотрела..
Массивы. Матрицы. Типичные задачи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
-Даша-
сообщение 18.06.2008 8:10
Сообщение #7


Гость






Айра посмотри, вот что получилось:

3)program zadanie3;
uses crt;
var m: array[1..5,1..5] of integer;
i,j:byte;
max,min:integer;
k1,k2:byte;
s: byte;
maxi,maxj,mini,minj: byte;

begin

clrscr;
repeat
write('Введите размерность квадратной матрицы до 5: ');
readln(s);
until (s>0) and (s<=5);

clrscr;
for i:=1 to s do
for j:=1 to s do
begin
write('Введите элемент матрицы: ');
readln(m[i,j]);
end;

clrscr;
writeln('Исходная матрица:');
writeln;
for i:=1 to s do
begin
for j:=1 to s do
write(m[i,j]:5);
writeln;
end;

k1:=0;
k2:=0;
max:=m[1,2];
min:=m[2,1];
for i:=1 to s do
for j:=1 to s do
begin
if (i<j) and (m[i,j]>max) then
begin
max:=m[i,j];
readln;
writeln;
Writeln('Min element ниже гл. диаг.',max); что-то я запуталась?
end;
if (i>j) and (m[i,j]<min) then
begin
min:=m[i,j];
readln;
writeln;
Writeln('Max element выше гл. диаг.',min); что-то я запуталась?
end;
end;

for i:=1 to s do
for j:=1 to s do
begin
if (i<j) and (m[i,j]=max)
then k1:=k1+1;

if (i>j) and (m[i,j]=min)
then k2:=k2+1;
end;

if (k1>1) or (k2>1) then

begin
writeln('В матрице больше одного мин элта ниже гл диагонали и одного макс элта выше');
writeln('Нажмите любую клавишу');
readkey;
end;
end.
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 8:23
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Запуталась))
все намного проще:

const n=5; // если ты уже точно знаешь, какая размерность у массива, то ее можно задать константой
// и не пытаться потом спрашивать у пользователя
var a: array[1..n,1..n] of integer;
max,min,i,j: integer; // максимум, минимум, переменные цикла и больше тебе ничего не надо
begin
randomize;

for i:=1 to n do
for j:=1 to n do
readln(a[i,j]);

for i:=1 to n do
begin
for j:=1 to n do
begin
// a[i,j]:=random(10); // можно было и чтоб массив сам формировался
write(a[i,j]:3);
end;
writeln;
end;

// я так поняла, что элементы, стоящие на диагонали брать не надо

max:=a[1,2]; // тогда это начальное значение максимума, выше диагонали
min:=a[2,1]; // минимум_ниже

// я не зря тебя в faq отправила)) там был пример циклов ниже\выше диагоналей
// этот цикл перебирает элементы только выше нее
for i:=1 to n do
for j:=i+1 to n do if a[i,j]>max then max:=a[i,j]; // и ищем максимум давно известным способом

// а здесь элементы только ниже
for i:=1 to n do
for j:=1 to i-1 do if a[i,j]<min then min:=a[i,j];

writeln('максимум выше диагонали: ',max);
writeln('минимум ниже диагонали: ',min);
end. // вот и все smile.gif



p.s. используй теги pascal\delphi, так понятнее код будет ))

Сообщение отредактировано: Айра - 18.06.2008 8:27
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
-Даша-
сообщение 18.06.2008 8:31
Сообщение #9


Гость






Айра спасио тебе ещё раз!

И вот, последнюю сделала, вроде:

2)var a:array[1..4,1..6] of integer;
max,min,m1,m2,i,j,t:integer;
begin
randomize;
min:=9999;
max:=0;
for i:=1 to 4 do begin
for j:=1 to 6 do begin
a[i,j]:=random(50);
write(a[i,j]:3);
if a[i,j]<min then begin min:=a[i,j]; m1:=j; end;
if a[i,j]>max then begin max:=a[i,j]; m2:=j; end;
end;
writeln;
end;
for i:=1 to 4 do begin
t:=a[i,m1];
a[i,m1]:=a[i,m2];
a[i,m2]:=t;

end;
writeln('rezultat:');
for i:=1 to 4 do begin
for j:=1 to 6 do begin
write(a[i,j]:3);
end;
writeln;
readln;
end;

end.
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 8:42
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Вроде сделала))
readln в конце лучше убрать из цикла..

только смотри, а мы уверены, что в массиве у нас, например, только положительные элементы будут? (я не знаю как по заданию).. просто если сделать массив из целиком отрицательных, то значение максимума будет найдено не верно, точнее оно так и останется нулем, и тогда программа вылетит при попытке поменять местами столбцы..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 18.06.2008 8:46
Сообщение #11


Гость






Цитата(Айра @ 18.06.2008 8:23) *

Запуталась))
все намного проще:

const n=5; // если ты уже точно знаешь, какая размерность у массива, то ее можно задать константой
// и не пытаться потом спрашивать у пользователя
var a: array[1..n,1..n] of integer;
max,min,i,j: integer; // максимум, минимум, переменные цикла и больше тебе ничего не надо
begin
randomize;

for i:=1 to n do
for j:=1 to n do
readln(a[i,j]);

for i:=1 to n do
begin
for j:=1 to n do
begin
// a[i,j]:=random(10); // можно было и чтоб массив сам формировался
write(a[i,j]:3);
end;
writeln;
end;

// я так поняла, что элементы, стоящие на диагонали брать не надо

max:=a[1,2]; // тогда это начальное значение максимума, выше диагонали
min:=a[2,1]; // минимум_ниже

// я не зря тебя в faq отправила)) там был пример циклов ниже\выше диагоналей
// этот цикл перебирает элементы только выше нее
for i:=1 to n do
for j:=i+1 to n do if a[i,j]>max then max:=a[i,j]; // и ищем максимум давно известным способом

// а здесь элементы только ниже
for i:=1 to n do
for j:=1 to i-1 do if a[i,j]<min then min:=a[i,j];

writeln('максимум выше диагонали: ',max);
writeln('минимум ниже диагонали: ',min);
end. // вот и все smile.gif



p.s. используй теги pascal\delphi, так понятнее код будет ))


Почему-то программа не работает?
Ошибку выдаёт паскаль:Runtime error 106 at 0000:0097
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 8:50
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


хм.. а что ты ввела? может я что-то не предусмотрела..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 9:21
Сообщение #13


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Такая ошибка выскакивает если вместо цифр, которые у нас ожидаются, ввести символ..
Это один из вариантов..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 18.06.2008 9:51
Сообщение #14


Гость






Цитата(Айра @ 18.06.2008 9:21) *

Такая ошибка выскакивает если вместо цифр, которые у нас ожидаются, ввести символ..
Это один из вариантов..


Неправильно просто из программы вышла smile.gif
Но вот только почему-то цифры надо вводить самой, рандом не работает?
 К началу страницы 
+ Ответить 
Ютани
сообщение 18.06.2008 10:03
Сообщение #15





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Помогите пожалуйста решить эту задачу
В случайном двухмерном массиве программа находит максимальный и минимальный выводит на экран массив и эти элементы
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 18.06.2008 10:28
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Цитата
Но вот только почему-то цифры надо вводить самой, рандом не работает?

Ну так потому что он закомментирован)) убери "//" перед ним и он заработает, только тогда убери и заполнение массива вручную..

to Ютани: поиск + не нужно постить свои вопросы в чужих темах.. (кстати часть решения твоей задачи, есть и здесь)

Сообщение отредактировано: Айра - 18.06.2008 10:30
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 11:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"