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

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

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

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


Гость






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


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


Профи
****

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

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


Задачи ведь несложные..
В FAQ'e есть пример циклов, которые проходят по элементам выше\ниже диагоналей; задач на минимум и максимум тоже решалось очень много. Почитай темы и попробуй сделать что-нибудь, а потом, если что, поправим))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 можно не писать..

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


Гость






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


Профи
****

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

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


загляни сюда, если еще не смотрела..
Массивы. Матрицы. Типичные задачи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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, так понятнее код будет ))

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

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

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


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

только смотри, а мы уверены, что в массиве у нас, например, только положительные элементы будут? (я не знаю как по заданию).. просто если сделать массив из целиком отрицательных, то значение максимума будет найдено не верно, точнее оно так и останется нулем, и тогда программа вылетит при попытке поменять местами столбцы..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Профи
****

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

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


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


Профи
****

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

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


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


Гость






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

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


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





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

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


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


Профи
****

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

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


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

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

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

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

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

 





- Текстовая версия 28.03.2024 16:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name