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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2009, 17:30   #1
agoriachev
 
Регистрация: 29.01.2009
Сообщений: 4
По умолчанию Требуется помощь: типизированный файл

Обработка одномерного массива
1 Найти сумму элементов между mах и min
2 Поменять местами mах и min
Двумерные массивы
1 Найти столбец содержащий mах и min элементы целочисленного массива и поменять местами столбцы
2 Найти сумму элементов четных, лежащих выше главной диагонали и сумму элементов четных, лежащих ниже главной диагонали.

Сделано благодаря Teor'у!
Осталось:
Создать типизированный файл содержащий информацию о студентах групп (порядковый номер студента, имя, стипендия)
Посчитать среднюю стипендию (размер средней стипендии)

Последний раз редактировалось agoriachev; 29.01.2009 в 21:03.
agoriachev вне форума Ответить с цитированием
Старый 29.01.2009, 18:01   #2
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Нащет одномерного массива, то вот вариант
Код:
program masiv;
uses crt;
var i,c,imin,imax,n,min,max,suma:integer; mas:array[1..100] of integer;
begin
clrscr;
writeln ('Введите количество елементов');
readln (n);
for i:=1 to n do
begin
mas[i]:=-random(50)+random(50);
write (mas[i],'  ');
end;
min:=mas[1];
max:=mas[1];
for i:=1 to n do
begin
if mas[i]<=min then
begin
min:=mas[i];
imin:=i;
end;
if mas[i]>=max then
begin
max:=mas[i];
imax:=i;
end;
end;
if imin<imax then
for i:=imin to imax do
suma:=suma+mas[i] else if imax<imin then for i:=imax to imin do suma:=suma+mas[i];
for i:=1 to n do
if i=imin then
begin
c:=mas[i];
mas[i]:=mas[imax];
mas[imax]:=c;
end;
writeln;
writeln ('Сума ',suma);
writeln ('Новый масив');
for i:=1 to n do
write (mas[i],'  ');
readkey
end.
Но иногда программа отказываетоься работать. Я токо чет не могу найти ошибку.

Так.. Вроде-бы все уже работает

Последний раз редактировалось Teor; 29.01.2009 в 18:29.
Teor вне форума Ответить с цитированием
Старый 29.01.2009, 18:30   #3
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Вот вариант для задания с двумерным массивом
Код:
program masiv;
uses crt;
var i,j,min,max,c,n,jmin,jmax,suma1,suma2:integer; mas:array[1..100,1..100] of integer;
begin
clrscr;
writeln ('Введите размер');
readln (n);
for i:=1 to n do
begin
for j:=1 to n do
begin
mas[i,j]:=-random(50)+random(50);
write (mas[i,j],'  ');
end;
writeln;
end;
for i:=1 to n do
for j:=1 to n do
begin
if (j>i) and (odd(mas[i,j])=false) then suma1:=suma1+mas[i,j];
if (j<i) and (odd(mas[i,j])=false) then suma2:=suma2+mas[i,j];
end;
min:=mas[1,1];
max:=mas[1,1];
for i:=1 to n do
for j:=1 to n do
if mas[i,j]<=min then 
begin
min:=mas[i,j];
jmin:=j;
end else if mas[i,j]>=max then
begin
max:=mas[i,j];
jmax:=j;
end;
for i:=1 to n do
begin
c:=mas[i,jmin];
mas[i,jmin]:=mas[i,jmax];
mas[i,jmax]:=c;
end;
writeln;
writeln ('Сума четных выше диагонали ',suma1);
writeln ('Сума четных ниже диагонали ',suma2);
writeln ('Новый масив');
for i:=1 to n do
begin
for j:=1 to n do
write (mas[i,j],'  ');
writeln;
end;
readkey
end.
Teor вне форума Ответить с цитированием
Старый 29.01.2009, 19:06   #4
agoriachev
 
Регистрация: 29.01.2009
Сообщений: 4
По умолчанию

огромное мерси!
все работает!
Теперь буду разбираться какая команда что делает ))
agoriachev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь с массивами и числами Pascal Rus 47 Помощь студентам 1 13.12.2008 01:56
Требуется помощь etrom Помощь студентам 4 19.10.2008 16:36
Требуется помощь! Svetax2 Помощь студентам 0 06.06.2008 19:30
Требуется помощь Я_Студент Помощь студентам 8 06.06.2008 09:31