Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ процедуры/функции, массивы и почти готовая сортировка

Автор: Leito 25.05.2008 13:25

Цитата
______.JPG - напишите плз первую и проверьте вторую, правильно решил или накосячил:
Код

program 2;
const n=5;
var a: array [1..n] of real;
i,k:integer;
x:real;
begin
writeln('vvedite chiclo');
readln(x);
writeln('vvedite massiv');
for i:=1 to n do
begin
read(a[i]);
if (a[i]<x) then k:=i; end;
readln;
writeln('k - ',k+1);
readln;
end.

Цитата
work.JPG - задачу решил но нужно указывать время (не целые числа) - исправьте плз как надо
Код
Program Premier;
Var B: array[1..7] of integer;
    P: array[1..7] of string;
    I,K,X: integer;
    St:string;
Begin
{nazvani9 i vremya}
       Writeln('nazvanie i vremya');
    For I:=1 to 7 do
    Begin
    Write(I,' nazvanie: ');
        Readln(P[I]);
        Write('vremya: ');
        Readln(B[I]);
    End;
{sort}
For K:=1 to 6 do
    For I:=1 to 7-K do
       If (B[I] > B[I+1]) then
       Begin
       X:=B[I];
       B[I]:=B[I+1];
       B[I+1]:=X;
       St:=P[I];
       P[I]:=P[I+1];
       P[I+1]:=St
       End;
{vivod}
writeln('Raspisanie: nazvanie poezda, vremya');
For I:=1 to 7 do
begin
    For K:= 1 to 9-length(P[I]) do
        P[I]:=P[I]+' ';
{vivod: mesto, poezd vremya}
       Writeln(I:2,' ',P[I]:18, B[I]:2)
    end;
        readln;
End.

fonkc_proc.doc - надо решить задачку процедурами и функциями - незнаю даже примерно как, помогите плз
заранее благодарю


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение

Прикрепленные файлы
Прикрепленный файл  fonkc_proc.doc ( 17 килобайт ) Кол-во скачиваний: 195

Автор: sintanial 25.05.2008 14:57

На счет fonkc_proc.doc . А в чем проблема ? Норма матрицы это как я помню, столбец который имеет максимальную сумму эллементов по модулю( тоесть ищешь сумму всех элементов одного столбца, второго и т.д. и ишешь из них макс сумму- это и будет норма одной матрицы( каждый элемент при складывании ставишь по модулю)). Вот ищешь три нормы трех матриц. у тебя получится три числа, это и будет твой вектор. А потом ищешь как по формуле которая тебе дана, длину вектора.

З.ы. Посмотри на первой странице, в задачах, тута где то я помогал рушить как искать норму матрицы

Автор: volvo 25.05.2008 15:04

Цитата
Норма матрицы это как я помню, столбец который имеет максимальную сумму эллементов по модулю
Это смотря какая норма. Их как минимум 3, так что надо уточнить, какую искать...

Автор: sintanial 25.05.2008 15:07

Ну там же в док файле в конце вроде бы 1<=i<=m - вроде бы m это столбцы ?

Автор: Leito 25.05.2008 15:22

Цитата(sintanial @ 25.05.2008 11:07) *

Ну там же в док файле в конце вроде бы 1<=i<=m - вроде бы m это столбцы ?

i - строки, j - столбцы...как я понял м нужно вводить с клавиатуры(ну или задать заранее) для определения количества строк...или я вапще не в ту сторону думаю...напишите плз, я уже дня два пытаюсь сделать

Автор: sintanial 25.05.2008 21:57

ну обычно обозначают матрицу NxM где n-строки m- столбцы =)
Вот что то на подобие этого твоя задача


Type matr=array[1..4,1..4] of real ;
function max(const a:matr):real;
var s,max1:real; i,j:integer;
begin
j:=1;
max1:=0;
repeat
begin
s:=0;
for i:=1 to 4 do
s:=s+abs(a[i,j]);
if s>max1 then
max1:=s;
inc(j)
end;
until j>3;
max:=max1;
end;

function mat(var a:matr):real;
var i,j:integer;
begin
writeln('vvod matrici:');
for i:=1 to 4 do
for j:=1 to 3 do
read(a[i,j]);
end;
var a,b,c:matr;
i,j:integer;
s:real;
s1,s2,s3,max1,vmax:real;
m,n:integer;
begin
mat(a);
s1:=max(a);
mat(b);
s2:=max(b);
mat©;
s3:=max©;
s:=sqrt(sqr(st1)+sqr(st2)+sqr(st3))
writeln(s);
end.


Во первых писал здесь, не знаю пашеть или нет(так как из меня не кудышный пока программист, и ошибки где то полюбому допускаю =) ), если нет то я думаю сам сможешь отредактировать, и сделать как тебе нужно =) !

Автор: Leito 25.05.2008 23:11

вот что я родил с этой задачей за три дня

Код
const m=4;
      n=3;
type
    massiv = array[1..m,1..n] of real;
var A,B,C:massiv;
i,j:integer;
sym,nopmA,nopmB,nopmC:real;
function c4etnopm(mas:massiv):real;
var i,j:integer;
h:real;
begin
h:=0;
for i:=1 to m do
for j:=1 to n do
h:=h+abs(mas[i,j]);
c4etnopm:=h;
end;
begin
writeln('vv matricbI A');
for i:=1 to m do
for j:=1 to n do
read(A[i,j]);
writeln('vv matricbI B');
for i:=1 to m do
for j:=1 to n do
read(B[i,j]);
writeln('vv matricbI C');
for i:=1 to m do
for j:=1 to n do
read(C[i,j]);  {
for i:=1 to m do
begin
for j:=1 to n do
write(A[i,j]:0:0,' ');
writeln;
end;
for i:=1 to m do
begin
for j:=1 to n do
write(B[i,j]:0:0,' ');
writeln;
end;
for i:=1 to m do
begin
for j:=1 to n do
write(C[i,j]:0:0,' ');
writeln;
end;          }
nopmA:=c4etnopm(A);
nopmB:=c4etnopm(B);
nopmC:=c4etnopm(C);
sym:=sqrt(nopmA*nopmA+nopmB*nopmB+nopmC*nopmC);
writeln('Hopma matric: ',sym:4:1);
end.

Автор: sintanial 26.05.2008 1:45

Отформатируйте задачу нормально плиз, читать код не возможно =) . И по возможности, код в паскалевские теги ставь, так как то легче смотреть =)