Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
E1dar У тебя ошибка в сравнении, вот исправленный кусок программы(исправлено БОЛЬШИМИ буквами)
Код:
for i:=1 to n do BEGIN MIN:=MATR[I,1]; begin for j:=1 to m do if matr[i,j]<min then MIN:=MATR[I,J]; end; A[I]:=MIN; END;
E1dar твои проги нереально читать делай отступы поменьше(2-3 пробела) и только где надо, ну примерно вот так:
Код:
program lab7_4; uses crt; const n=6; m=9; var a : array [1..n,1..m] of real; b : array [1..m] of real; i,j,min,max : integer; big,small : real;
begin clrscr; for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=0.25*(i+j); {esli pisat RANDOM to chisla povtorjautsja} write(a[i,j]:4:1); end; writeln; end;
big:=a[1,1]; small:=a[1,1]; min:=1; max:=1; {poisk max i min u tebja kaardinal'no nepravilnji} for i:=1 to n do begin for j:=1 to m do begin if a[i,j]>big then begin big:=a[i,j]; max:=i; end; if a[i,j]<small then begin small:=a[i,j]; min:=i; end; end; end;
for j:=1 to m do begin {oshibku tebe komp vydaval, potomu chto ty pisal} b[j]:=a[min,j]; {for j:=1 to n (a nyzhno m) } a[min,j]:=a[max,j]; a[max,j]:=b[j]; end;
writeln('Result:'); for i:=1 to n do begin for j:=1 to m do begin write (a[i,j]:4:1); end; writeln; end;
x:=Length(A);//здесь все хорошо y:=Length(A[Length(A)]);//а в этой строке ошибка
Ведь А это динамический двумерный массив, следовательно можно обратиться к любой его строке, где строка тоже представляет собой одномерный массив.
Как можно узнать в процедуре размерность двумерного динамического массива(количество строк и столбцов), если явно не передать в функцию/процедуру количество строк и стобцов?
Вывести на экран графики двух функций на интервале x_нач до x_кон с шагом dx.
#77
Первая функция задана с помощью ряда Тейлора, её вычисление должно выполняться с точностью е.
Для второй ф-и значение b вводиться с клавы. Нужно найти корень этого уравнения методом Ньютона (Здесь вообще УЖАС. Паскаль с такими большиму числами не хочет связываться....).
На графиках должна быть градация осей и они должны масштабироваться, чтобы все влазило в экран.
О4ень прошу, помогите... Целую неделю парюсь, а здавать уже нужно...
KENT8 А какое объявление у этих записей?
Вообще в этом ничего сложного нет.
При экспорте в текстовик пишеш построчно каждое поле записи.
Для пущей простоты можно в начале файла (первой строчкой) прописать общее количество записей.
Народ, помогите, пожалуйста, решить эту задачу с использованием модуля.
Определите, можно ли из ВСЕХ элементов заданных векторов А и В одинаковой размерности N составить последовательность подряд идущих целых чисел. Элементы векторов А и В целого типа и принимают значения из диапазона от 1 до 200.
Замечание: нельзя использовать вспомогательные массивы и менять порядок следования элементов в векторах; осуществлять просмотр элементов каждого из векторов можно только 1 раз.
Без модуля её решение выглядит так:
Program Wektor;
uses crt;
type Vektor = array[1..200] of byte;
SetByte = Set of Byte;
Var G,Z,A,B : Vektor;
SG,SZ,SA,SB : SetByte;
i,N : Byte;
Procedure Zapis(Var X:Vektor;Var SX:SetByte);
Var i:byte;
begin
SX:=[];i:=1;
While i<=N do
begin
SX:=SX+[x[i]];
inc(i)
end;
end;
Procedure Posledowatelnost(Var G:Vektor;Var SG:SetByte);
Var el:byte;
begin
SG:=[];
SG:=SA+SB;
For el:=1 to 200 do
begin
If (el in SG) then
begin
Writeln(el)
end;
end;
end;
Procedure Estli(Var Z:Vektor;Var SZ:SetByte);
Var l: byte;
begin
SZ:=[];
SZ:=SA+SB;
l:=1;
While not(l in SZ) do l:=l+1;
While (l in SZ) do
begin
if (l in SZ) then SZ:=SZ-[l];
inc(l)
end;
if SZ=[] then
begin
Writeln('Da');
Posledowatelnost(Z,SZ);
end
else
begin
Writeln('Net');
end;
end;
begin
clrScr;
Writeln('Kolichestwo elementow:');
Readln(N);
Writeln('Element vektora A:');
For i:=1 to N do Readln(a[i]);
Zapis(A,SA);
Writeln;
Writeln('Element vektora B:');
For i:=1 to n do Readln(b[i]);
Zapis(B,SB);
Writeln;
Estli(Z,SZ);
readln
end.
uses crt; const n=50; type Matrix=array[1..n,1..n] of integer; TMatrix=^Matrix;
function DetMatrix(ma,minor: TMatrix; maxma,maxmi: byte): integer; var i,j,k,r,c: byte; dim: byte; buf: integer; digit: integer; begin if maxmi=3 then begin buf:=(minor^[1,1]*minor^[2,2]*minor^[3,3]+minor^[2,1]*minor^[3,2]*minor^[1,3]+minor^[1,2]*minor^[2,3]*minor^[3,1]); buf:=buf-(minor^[3,1]*minor^[2,2]*minor^[1,3]+minor^[1,2]*minor^[2,1]*minor^[3,3]+minor^[2,3]*minor^[3,2]*minor^[1,1]); DetMatrix:=buf; end else begin for i:=1 to maxma do for j:=1 to maxma do for k:=1 to maxma do if j=k then begin digit:=ma^[j,k]; if k mod 2=0 then digit:=(-1)*digit; continue; end else begin for r:=j to maxma do for c:=k to maxma do minor^[r,c]:=ma^[r,c]; buf:=buf+digit*DetMatrix(ma,minor,maxma,maxmi-1); end; end; DetMatrix:=buf; end;
procedure MainProc; var dim: byte; ma: TMatrix; i,j: byte; det: integer; begin writeln('Vicheslenie opredilitelya'); write('Vvedite razmernost matrici(<=',n,'): '); readln(dim); for i:=1 to dim do for j:=1 to dim do begin write('Vvedite element a[',i,',',j,'] - '); readln(ma^[i,j]); end; det:=DetMatrix(ma,ma,dim,dim); write('Opredelitel = ',det); readln; end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения