Часовой пояс: UTC + 3 часа




Куратор(ы):   Lord_of_Darkness   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 29 из 50<  1 ... 26  27  28  29  30  31  32 ... 50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Убедительная просьба ко всем, кто выкладывает исходники:
1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы

Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прежде чем задать вопрос, воспользуйтесь учебником


Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь

Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36



Партнер
 

Member
Статус: Не в сети
Регистрация: 24.02.2006
Откуда: Краснодар
Lord_of_Darkness, посмотри моя пожалуйста

_________________
!"№;%:?*()_+


 

skier Большое спасибо и извини за принесённое неудобство, ещё не очень освоилась:oops:


 

Member
Статус: Не в сети
Регистрация: 24.07.2006
-----


Последний раз редактировалось E1dar 12.03.2010 3:07, всего редактировалось 1 раз.

 

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;

  readln;
end.


 

Member
Статус: Не в сети
Регистрация: 24.07.2006
------


Последний раз редактировалось E1dar 12.03.2010 3:07, всего редактировалось 1 раз.

 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
E1dar писал(а):
Может можно это сделать по-другому не особо сложным образом?

Код:
function NormalRnd(AbsLim : integer) : real;
begin
    Result := (AbsLim*1000 - random(2*AbsLim*1000))/1000;
end;


перед использованием функции в начале программы нужно инициализировать генератор случайных чисел, процедурой randomize;

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 24.09.2006
Откуда: Riga, Latvia
Сделайте плиз 5-ю лабу(последнюю).
Задание:

Дано число к(0<k<11) и матрица размера 4х10. Найти произведение элементов к столбца данной матрицы.
Чет до меня не дошло.
Заранее спасибо


 

Junior
Статус: Не в сети
Регистрация: 06.04.2006
Объясните пожалуйста в чем ошибка
тип задан так:
Код:
TMatrix = array of array of integer;

Описание пользовательской функции:
Код:
function FMinY(const A: TMatrix):integer;

Часть кода содержащая ошибку:
Код:
x:=Length(A);//здесь все хорошо
y:=Length(A[Length(A)]);//а в этой строке ошибка

Ведь А это динамический двумерный массив, следовательно можно обратиться к любой его строке, где строка тоже представляет собой одномерный массив.

    Как можно узнать в процедуре размерность двумерного динамического массива(количество строк и столбцов), если явно не передать в функцию/процедуру количество строк и стобцов?


 

ExplodeR писал(а):
y:=Length(A[Length(A)]);

y:=Length(A[High(A)]);
будет правильней


 

Всем здравствуйте...

Пытаюсь сделать такую программу...

Вывести на экран графики двух функций на интервале x_нач до x_кон с шагом dx.
#77

Первая функция задана с помощью ряда Тейлора, её вычисление должно выполняться с точностью е.

Для второй ф-и значение b вводиться с клавы. Нужно найти корень этого уравнения методом Ньютона (Здесь вообще УЖАС. Паскаль с такими большиму числами не хочет связываться....).

На графиках должна быть градация осей и они должны масштабироваться, чтобы все влазило в экран.

О4ень прошу, помогите... Целую неделю парюсь, а здавать уже нужно...


 

Member
Статус: Не в сети
Регистрация: 11.10.2006
Снова здравствуйте! Вопрос: как передать информацию из типизированного файла в текстовый и наоборот?


 

KENT8 писал(а):
Снова здравствуйте! Вопрос: как передать информацию из типизированного файла в текстовый и наоборот?


Я думаю, придется создавать текстовый на основе данных из типизированного... читаешь из типизированного -> пишешь в текстовый и наоборот...

что конкретно хочешь?


 

Member
Статус: Не в сети
Регистрация: 11.10.2006
Массив с элементами типа запись надо передать туда и обратно.


 

Member
Статус: Не в сети
Регистрация: 02.12.2004
KENT8
А какое объявление у этих записей?
Вообще в этом ничего сложного нет.
При экспорте в текстовик пишеш построчно каждое поле записи.
Для пущей простоты можно в начале файла (первой строчкой) прописать общее количество записей.

Импорт еще легче :)


 

Почему не запускаяется
#77


 

Народ, помогите, пожалуйста, решить эту задачу с использованием модуля.
Определите, можно ли из ВСЕХ элементов заданных векторов А и В одинаковой размерности 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.


 

Member
Статус: Не в сети
Регистрация: 11.10.2006
Делал вторую лабораторку с файлами. В итоге первые 2-3 раза запускается нормально, а потом пишет, что нет файла. Из-за чего такое может быть?


 

товариСЧи, помогите плиз!
нужна прога вычисления опроеделитоеля
Код:
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;

begin
  clrscr;
  MainProc;
end.

вот то что я набросал

сильно не смейтесь.. рекурсию не давно начал


 

народ, укажите плиз на ошибку :weep:
вопрос жизни и смерти :(


 

Member
Статус: Не в сети
Регистрация: 30.01.2006
Откуда: Минск
HardMan, тебе рекурсия обязательна? Можно проще и гораздо быстрее.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 29 из 50<  1 ... 26  27  28  29  30  31  32 ... 50  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan