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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 18:14   #1
NAZE
 
Регистрация: 27.05.2010
Сообщений: 6
По умолчанию Подпрограмма

Добрый день. помогите пожалуйста составить программу, условие такое:
Составить подпрограмму на Паскале, содержащую минимум четыре подпограммы.
Дан одномерный массив, выполнить следующие действия:
-найти сумму элементов, кратных данному К;
-создать массив из номеров нулевых элементов;
-Заменить все элементы массива, больше заданного Z, этим числом, родсчитать количество замен;
-определить количество элементов массива, расположенных перед первым нулевым элементом.
NAZE вне форума Ответить с цитированием
Старый 27.05.2010, 22:28   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Пиши в аську 593013807. Помогу.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 27.05.2010, 23:35   #3
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Type
mas=array[1..100] of integer;
var
a:mas;
b:mas;
i,sum,k,kol,z,ind,sum2,kol2,sel,n,kol3:integer;
key:char;

procedure sumkratn(c:mas);
begin
sum:=0;
    write('K:= ');
    readln(k);
    for i:=1 to n do
    if c[i] mod k=0 then
    begin
    sum:=sum+c[i];
    end;
    writeln;
    writeln('Сумма элементов кратных заданному элементу ',k,':=',sum);
    end;
    
Procedure massivIND(c:mas);
begin
kol:=0;
    for i:=1 to n do
    if c[i]=0 then
    begin
    {write(i,' ');}
    inc(kol);
    b[kol]:=i;
    end;
    writeln;
    writeln('Массив индексов элементов равных 0: ');
    for i:=1 to kol do
    begin
    write(b[i],' ');
    end;
    writeln;
    end;
    
Procedure zamena(c:mas);
begin
kol3:=0;
write('Введите Z: ');
    readln(z);
    for i:=1 to n do
    if c[i]>z then
    begin
    c[i]:=z;
    inc(kol3);
    end;
    writeln;
    writeln('Массив после замены элементов больших Z: ');
    for i:=1 to n do
    begin
    write(c[i],' ');
    end;
    writeln;
    writeln('Количество замен:',kol3);
    end;
    
Procedure nul(c:mas);
begin
ind:=1;
    writeln('Первый нулевой элемент: ');
    for i:=1 to n do
    if c[i]=0 then
    begin
    ind:=i;
    write(c[i],' ',ind);
    break;
    end;
    writeln(ind);
    writeln;
    end;
    
Procedure kolel(c:mas);
begin
kol2:=0;
    for i:=1 to ind-1 do
    begin
    inc(kol2)
    end;
    writeln('Количество элементов перед нулевым: ',kol2);
    end;
    
begin
randomize;
write('ВВедите количество элементов: ');
readln(n);
writeln('Исходный массив: ');
  for i:=1 to n do
    begin
    a[i]:=random(10);
    write(a[i]:2,' ');
    end;
    writeln;
  writeln('Меню':50);
  writeln('1: -найти сумму элементов, кратных данному К');
  writeln('2: -создать массив из номеров нулевых элементов');
  writeln('3: -Заменить все элементы массива, больше заданного Z, этим числом, родсчитать количество замен');
  writeln('4: -определить количество элементов массива, расположенных перед первым нулевым элементом');
  writeln('5: -ВЫХОД');
  repeat
  write('ВАШ ВЫБОР: ');
  readln(sel);
  case sel of
  1: sumkratn(a);
  2: massivIND(a);
  3: begin
  zamena(a); nul(a);
  end;
  4: kolel(a);
  5: exit;
  end;
  write('Повторить (Yes/No)?');
  readln(key);
  Until UpCase(key)<>'Y';
  writeln;
end.
にんじゃ

Последний раз редактировалось ROMA2PVT; 27.05.2010 в 23:39.
ROMA2PVT вне форума Ответить с цитированием
Старый 28.05.2010, 12:19   #4
NAZE
 
Регистрация: 27.05.2010
Сообщений: 6
По умолчанию

спасибо!!!!!!!!!
NAZE вне форума Ответить с цитированием
Старый 30.05.2010, 21:33   #5
Marino444ka
 
Регистрация: 28.05.2010
Сообщений: 9
По умолчанию

Можно я еще кое-что попрошу... Паскаля вообще в школе не было((( Помогите процедуру на паскале написать!

Это, что сделано...
(1)Одномерный массив: Дан массив целых чисел... Все элементы массива, предшествующие наименьшему числу, домножить на это число.(Спасибо "ROMA2PVT")
Код:
uses 
crt; 
var 
i,min,n,imin:integer; 
a:array[1..100] of integer; 
begin 
clrscr; 
randomize; 
write('Введите количество элементов: '); 
readln(n); 
writeln('Исходный массив A: '); 
for i:=1 to n do 
begin 
a[i]:=random(10)-5; 
write(a[i]:2,' '); 
end; 
writeln; 
min:=a[1]; 
imin:=1; 
for i:=1 to n do 
if a[i]<min then 
begin 
min:=a[i]; 
imin:=i; 
end; 
writeln('MIN:=',min); 
for i:=1 to imin-1 do 
begin 
a[i]:=a[i]*min; 
end; 
writeln; 
writeln('Элементы массива до min умноженные на мин: '); 
for i:=1 to n do 
begin 
write(a[i]:2,' '); 
end; 
readkey; 
end. 

(2)Двумерный массив: найти минимальный положительный элемент и его местоположение 
uses 
crt; 
Const 
n=4; m=4; 
var 
i,j,min,imin,jmin:integer; 
A:array[1..n,1..m] of integer; 
begin 
clrscr; 
randomize; 
for i:=1 to n do 
for j:=1 to m do 
a[i,j]:=random(50)-25; 
writeln('Целая матрица A'); 
for i:=1 to n do begin 
for j:=1 to m do 
write a[i,j]:5); 
writeln; 
end; 
min:=a[1,1]; 
imin:=1; 
jmin:=1; 
for i:=1 to n do 
for j:=1 to m do 
if a[i,j]<min then begin 
min:=a[i,j]; 
imin:=i; 
jmin:=j; 
end; 
readkey; 
end.
Здесь в качестве условия берется задание - (2)Двумерный массив, но работать не с одной матрицей, а с двумя. В основной программе предусмотреть вызовы подпрограмм к обеим матрицам.

помогите, пожалуйста...
Marino444ka вне форума Ответить с цитированием
Старый 30.05.2010, 22:19   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Ну вот к первой процедура.
Код:
uses
crt;
Type
mas=array[1..100] of integer;
var
i,min,n,imin:integer;
a:mas;

procedure minEl(Var kl:mas);
begin
min:=a[1];
imin:=1;
for i:=1 to n do
if kl[i]<min then
begin
min:=kl[i];
imin:=i;
end;
writeln('MIN:=',min);
for i:=1 to imin-1 do
begin
kl[i]:=kl[i]*min;
end;
end;

begin
clrscr;
randomize;
write('Введите количество элементов: ');
readln(n);
writeln('Исходный массив A: ');
for i:=1 to n do
begin
a[i]:=random(10)-5;
write(a[i]:2,' ');
end;
writeln;

minEl(a);

writeln;
writeln('Элементы массива до min умноженные на мин: ');
for i:=1 to n do
begin
write(a[i]:2,' ');
end;
readkey;
end.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 30.05.2010, 22:25   #7
Marino444ka
 
Регистрация: 28.05.2010
Сообщений: 9
По умолчанию

В смысле к первой?!
Marino444ka вне форума Ответить с цитированием
Старый 30.05.2010, 22:31   #8
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

в смысле к этой
Цитата:
(1)Одномерный массив: Дан массив целых чисел... Все элементы массива, предшествующие наименьшему числу, домножить на это число.(Спасибо "ROMA2PVT")
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 30.05.2010, 22:43   #9
Marino444ka
 
Регистрация: 28.05.2010
Сообщений: 9
По умолчанию

Нужно - (2)Двумерный массив, но работать не с одной матрицей, а с двумя. В основной программе предусмотреть вызовы подпрограмм к обеим матрицам.
Я благодарна тебе за одномерный массив просто!!! ты мне с ним очень помог.
А к подпрограммам нужно (2). извини, если не понятно написала, время отняла. Но если сможешь, то помоги со (2).
Marino444ka вне форума Ответить с цитированием
Старый 30.05.2010, 22:52   #10
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
uses
   crt;
Const
n=4;
m=4;
type
mas=array[1..n,1..m] of integer;
var
i,j,min,imin,jmin:integer;
A:mas;

procedure MINel(Var kl:mas; k,l:integer);
begin
min:=kl[1,1];
imin:=1;
jmin:=1;
for i:=1 to k do
for j:=1 to l do
if kl[i,j]<min then
begin
min:=a[i,j];
imin:=i;
jmin:=j;
end;
writeln('MIN[',imin,';',jmin,']:=',min);
end;

begin
clrscr;
randomize;
writeln('Целая матрица A: ');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(50)-25;
write(a[i,j]:5,' ');
end;
writeln;
end;
writeln;

MINel(a,n,m);

readkey;
end.
генерируешь вторую матрицу и также вызываешь в основном теле.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подпрограмма-прпоцедура St1mkA Помощь студентам 0 17.05.2010 19:47
Подпрограмма на паскале Alexsey1991 Помощь студентам 5 22.04.2010 19:26
Подпрограмма с графикой Alexsey1991 Помощь студентам 4 13.04.2010 18:18
Подпрограмма Maks6169 Помощь студентам 4 13.02.2010 12:30
подпрограмма alex1313 Паскаль, Turbo Pascal, PascalABC.NET 2 02.04.2009 21:13