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

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

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

 
 Ответить  Открыть новую тему 
> функция и процедура
Armi
сообщение 21.03.2007 9:54
Сообщение #1





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

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


нужна помощь срочно =) решить задачу по одномерному массиву через функцию, и задачу по двумерному массиву через процедуру. сами задачи уже решены, но вот через функцию и процедуру я решить не могу - по очень их понимаю

задача на одномерный массив: в целочисленной последовательности есть нулевые элементы. создать массив из номеров этих элементов.
Код

program massiv;
uses crt;
var
a,mas:array[1..100] of shortint;
i,n,k:byte;
begin
clrscr;
k:=0;
write ('vvedite n');
read(n);
for i:=1 to n do
  begin
  writeln('vvedite ',i,' chislo');
  read(a[i]);
   if a[i]=0 then
    begin
    k:=k+1;
    mas[k]:=i;
    end;
  end;
  for i:=1 to k do
  write(mas[i]);
end.

двумерный масив: дан массив А размером n*m. найти количество к особых элементов, считая элемент особым если он больше суммы остальных элементов его столбца.
Код

program zadacha;
uses crt;
var
max,s:integer;
i,j,k,n,m:byte;
a:array[1..100,1..100] of integer;
begin
clrscr;
max:=-32768;
k:=0;
write('vvedite n');
read(n);
write('vvedite m');
read(m);
for i:=1 to n do
  begin
  for j:=1 to m do
   begin
   write('vvedite element massiva');
   read(a[i,j]);
   end;
  end;
for j:=1 to m do
  begin
  for i:=1 to n do
   begin
   s:=s+a[i,j];
   if a[i,j]>max then
    begin
    max:=a[i,j];
    end;
   s:=s-max;
   end;
  if max>s then
   begin
   k:=k+1;
   write(max, ' ');
   max:=-32768;
   end;
  end;
writeln;
write(k);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sozialist
сообщение 21.03.2007 23:17
Сообщение #2


Клавиатурный тиран
**

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

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


program zadacha;
uses crt;
type
TMas=array[1..100,1..100] of integer;

procedure Task;
var
max,s:integer;
i,j,k,n,m:byte;
a:Tmas;
begin
clrscr;
max:=-32768;
k:=0;
write('vvedite n');
read(n);
write('vvedite m');
read(m);
for i:=1 to n do
begin
for j:=1 to m do
begin
write('vvedite element massiva');
read(a[i,j]);
end;
end;
for j:=1 to m do
begin
for i:=1 to n do
begin
s:=s+a[i,j];
if a[i,j]>max then
begin
max:=a[i,j];
end;
s:=s-max;
end;
if max>s then
begin
k:=k+1;
write(max, ' ');
max:=-32768;
end;
end;
writeln;
write(k);
end;{procedure Task}

BEGIN
Task;
END.


Подпрограммы можно писать для любой одной задачи, а не обязательно для задачи целиком, тем более для задачи целиком подпрограммы не нужны, но т.к. вы не указали, что именно нужно, то я обошелся таким кодом. Функция пишется почти аналогично. Уточни, что нужно. А вообще теорию читать надо wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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