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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2011, 12:13   #1
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию задача cond2 матрицы паскаль

задали такую задачку:

"Задан целочисленный одномерный массив A из N элементов. Найти номер первого минимального элемента среди элементов, больших Т1, и расположенных после первого элемента, равного Т2. Если нет элементов со значением Т2, то искать с начала массива. (Подсказка: «Сначала найти первый, равный T2, и последний, больший T1, а затем уже искать минимум, или вывести сообщение о причинах невозможности его поиска.»)"

задал матрицу, задал числа t1 и t2, не очень понимаю как найти номер первого минимального элемента, больших t1 и расположенных после элемента равного t2, как вот работать именно с номерами чисел
sanchoflat вне форума Ответить с цитированием
Старый 05.11.2011, 12:40   #2
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

конечно понимаю что тут полная ерунда, но пока понять немного не могу. тут хочу найти номер элемента равного Т2, и номер больший Т1, но как сделать чтоб он был последним
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;


   var
     a:array[1..10,1..10] of Integer;
      i,j,n,s,t1,t2,min,max:Integer;
begin

    write('n=');
    readln(n);
    writeln('vvedite matricy');
    for i:=1 to n do
    for j:=1 to n do
    Readln(a[i,j]);
    write(' t1=');
    readln (t1);
    write('t2=');
    readln(t2);


      for i:=1 to n do
      for j:=1 to n do
      if a[i,j]=t2
       then
       begin
          write('nomer=');
          Readln(a[i,j]);
          end;

          for i:=1 to n do
          for j:=1 to n do
          if a[i,j]>t1
          then
          begin
            Writeln('nomer2=');
            Readln(a[i,j]);
          end;




end.
sanchoflat вне форума Ответить с цитированием
Старый 05.11.2011, 13:24   #3
cronosanz
Пользователь
 
Аватар для cronosanz
 
Регистрация: 19.08.2011
Сообщений: 10
По умолчанию

Код:
const
  N=15;
var
  A:array[1..N] of integer;
  T1,T2,i,j,k,buf:integer;
  isFind:boolean;
begin
  readln(T1,T2);
  isFind:=false;
  for i:=1 to N do
    if T2=A[i] then 
      begin
        T2:=i;
        isFind:=true;
        break;
      end;
  k:=1;
  if isFind then k:=T2 else writeln('T2-не сущ.');
  for i:=k+1 to N do 
    for j:=k+1 to N do
      if A[j]<A[j-1] then 
        begin
          buf:=A[j-1];
          A[j-1]:=A[j];
          A[j]:=buf;  
        end;
  for i:=k to N do 
    if A[i]>T1 then 
      begin
        writeln(A[i]);
        exit;
      end;
  writeln('не подходящих элементов');
    
end.
cronosanz вне форума Ответить с цитированием
Старый 05.11.2011, 13:34   #4
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

как то не особ понятно и вроде вставил, не пашет
sanchoflat вне форума Ответить с цитированием
Старый 05.11.2011, 13:35   #5
cronosanz
Пользователь
 
Аватар для cronosanz
 
Регистрация: 19.08.2011
Сообщений: 10
По умолчанию

Зачем тебе двуиерный массив?
cronosanz вне форума Ответить с цитированием
Старый 05.11.2011, 13:36   #6
cronosanz
Пользователь
 
Аватар для cronosanz
 
Регистрация: 19.08.2011
Сообщений: 10
По умолчанию

т.е. двумерный
cronosanz вне форума Ответить с цитированием
Старый 05.11.2011, 13:36   #7
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

а блин точно. не нужен)
sanchoflat вне форума Ответить с цитированием
Старый 05.11.2011, 13:38   #8
cronosanz
Пользователь
 
Аватар для cronosanz
 
Регистрация: 19.08.2011
Сообщений: 10
По умолчанию

поставь перед вначале:
Код:
program Project1;

{$APPTYPE CONSOLE}
cronosanz вне форума Ответить с цитированием
Старый 05.11.2011, 13:40   #9
cronosanz
Пользователь
 
Аватар для cronosanz
 
Регистрация: 19.08.2011
Сообщений: 10
По умолчанию

перед вначале (плеоназм);
перед const короче
cronosanz вне форума Ответить с цитированием
Старый 05.11.2011, 13:41   #10
sanchoflat
Пользователь
 
Регистрация: 31.10.2011
Сообщений: 23
По умолчанию

так поставил. ввожу 2 числа и выбивает.
но даже все равно, с break сказали не делать
как правильней будет написать код поиска номера первого элемента равного Т2
Код:
begin

    write('n=');
    readln(n);
    writeln('vvedite matricy');
    for i:=1 to n do  begin

    Readln(a[i]);
    end;
    write(' t1=');
    readln (t1);
    write('t2=');
    readln(t2);

 for i:=1 to n do    begin
      if t2=a[i]
       then
       begin
          t2:=i;
          Readln(t2);

          end;
          end;
но он естествеено не робит
sanchoflat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Борладн Паскаль. Матрицы.задача Алюша Паскаль, Turbo Pascal, PascalABC.NET 1 10.04.2011 20:19
Задача на матрицы. [Паскаль] Dortmuns Помощь студентам 4 16.12.2010 21:28
Паскаль. Матрицы. Нерешабельная задача (с картинки) Киноон Помощь студентам 3 15.12.2010 22:38
Задача на матрицы. где-то закралась ошибка, нужно найти [Паскаль] president_ml Помощь студентам 3 08.12.2010 16:19