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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 10:48   #1
Dina 85
Пользователь
 
Регистрация: 09.10.2012
Сообщений: 49
Вопрос Из данных программ сделать программы с использованием процедур и функций

Здравствуйте,помогите пожалуйста,язык программирования turbo pascal.
Задание такое даны уже готовые программы,а из них нужно переделать программы с использованием процедур и функций.,т.е. вставить процедуры или функции.
1.Дан массив В(М, М). Вывести на печать элементы столбца, в котором расположен максимальный элемент матрицы В.

Код HTML:
Uses crt;
 Var
 b: Array[1..10,1..10] of Integer;
 i,j,m,max,jmax: Integer;
 BEGIN
 Write('vvedite razmer M matriz: '); Readln(m);
 Writeln('vvedite element:');
 For i:=1 to m do
 For j:=1 to m do
 Readln(b[i,j]);
 Clrscr;
 max:=b[1,1];
 Writeln('matriza:');
 For i:=1 to m do
 begin
 For j:=1 to m do
 begin
 If b[i,j]>max Then
 begin
 max:=b[i,j];
 jmax:=j;
 end;
 Write(b[i,j]:4);
 end;
 Writeln
 end;
 Writeln;
 Writeln('stolbez s maxcimalnym elementom:');
 For i:=1 to m do
 begin
 Write(b[i,jmax]);
 Writeln
 end;
 Readln
 END.
2.Дана матрица A(N,N). Перепишите элементы её главной диагонали в одномерный массив Y(N) и разделите их на максимальный элемент главной диагонали.

Код HTML:
Uses crt;
 Var
 a: Array[1..10,1..10] of Integer;
 y: Array[1..10] of Integer;
 i,n,max,j: Integer;
 BEGIN
 Write('vvedite razmer N matrizy: '); Readln(n);
 For i:=1 to n do
 For j:=1 to n do
 Readln(a[i,j]);
 Clrscr;
 Writeln('matriza:');
 For i:=1 to n do
 begin
 y[i]:=a[i,i];
 For j:=1 to n do
 Write(a[i,j]:4);
 Writeln
 end;
 max:=a[1,1];
 Writeln('odnomerny massive Y: ');
 For i:=1 to n do
 begin
 If y[i]>max Then max:=y[i];
 Write(y[i],' ');
 end;
 Writeln;
 Writeln('deleny na Max: ');
 For i:=1 to n do
 Write(y[i]/max:7:2);
 Readln
 END.
3.Задан массив В(К, М). Найти сумму элементов строки, в которой расположен минимальный элемент.

Код HTML:
uses crt;
 var
 b: array[1..100,1..100] of integer;
 i,j,k,n,x: byte;
 min,sum: integer;
 begin clrscr;
 write('Razmeru: ');
 readln(k,n);
 for i:=1 to k do
 begin
 for j:=1 to n do
 begin
 write('b[',i,',',j,']= ');
 readln(b[i,j]);
 end;
 writeln;
 end;
 writeln;
 min:=b[1,1];
 x:=1;
 for i:=1 to k do
 for j:=1 to n do
 if b[i,j]<min then
 begin
 min:=b[i,j];
 x:=i;
 end;
 for j:=1 to n do
 sum:=sum+b[x,j];
 writeln('Summa: ',sum);
 readkey;
 end.
4.Дан массив С(N). Найти среднее арифметическое положительных элементов с чётными индексами.
Код HTML:
uses crt;
 var
 c:array[1..100]of real;
 k,i,n:byte;
 s:real;
 Begin
 clrscr;
 write('Vvedite kol-vo elementov: ');
 readln(n);
 for i:=1 to n do
 begin
 write('Vvedite znachenie: ');
 readln(c[i]);
 end;
 for i:=1 to n do write(c[i]:8:3);
 Writeln;
 s:=0;
 k:=0;
 for i:=1 to n do
 if (i mod 2=0) and (c[i]>0) then
 begin
 s:=s+c[i];
 k:=k+1;
 end;
 writeln;
 writeln('Srednee arifmetichescoe: ',s/k:0:5);
 readkey;
 End.
Dina 85 вне форума Ответить с цитированием
Старый 16.12.2012, 12:33   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Многа букоф, не возьмусь. Сами чего, код написать в состоянии, а процедуры и функции из него сделать - никак?

Ну вот пример - процедура ввода массива и ее вызова:

Код:
type TMassiv=array [1..10,1..10] of real;

procedure InMassiv(var a: TMassiv; razmer: integer);
var i,j: integer;
begin
  for i:=1 to razmer do
    for j:=1 1 to razmer do begin
      Write('Введите элемент массива [',i,',',j,']: ');
      ReadLn(a[i,j];
    end;
end;

var m: TMassiv
    n: integer;
begin
  Write('введите размер массива: ');
  ReadLn(n);
  InMassiv(m,n);
end.

То же самое через функцию:

Код:
type TMassiv=array [1..10,1..10] of real;

function InMassiv(razmer: integer): TMassiv;
var i,j: integer;
    a: TMassiv
begin
  for i:=1 to razmer do
    for j:=1 1 to razmer do begin
      Write('Введите элемент массива [',i,',',j,']: ');
      ReadLn(a[i,j];
    end;
  InMassiv:=a;
end;

var m: TMassiv
    n: integer;
begin
  Write('введите размер массива: ');
  ReadLn(n);
  m:=InMassiv(n);
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реализация с использованием процедур и функций Olga1991_1 Общие вопросы C/C++ 6 02.12.2012 01:38
Разработка программ с использованием функций и процедур модуля GRAPH kurt_alex Паскаль, Turbo Pascal, PascalABC.NET 0 30.11.2012 23:28
программы с использованием процедур и функций. E.r.r.o.r. Помощь студентам 3 23.01.2012 09:34
Программирование с использованием процедур и функций vampir3001 Помощь студентам 2 14.12.2011 01:05