imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 13.12.2005, 04:28     # 1
DOric
Guest
 
Сообщения: n/a

Помощь по Turbo Pascal 7.0

Помагите пожалуйста, может это покажется не много наглостью но просто незнаю как сделать, потому прошу вашей помощи проблема такая немогу сделать программку по матрицам

ЗАДАНИЕ

Задана матрица целых чисел размером N*M НАЙТИ минимальный
СРЕДИ номеров строк ЭТОЙ матрицы, в которых находится вектор(строка), упорядоченный по возрастанию
и составленный из элементов, которые все положительны

В программе MADCAT( если правельно написал) делал матрицы, но в паскеле совсем подругому.
Спасибо тем кто сможет помочь.
 
Старый 13.12.2005, 10:44     # 2
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Непосредственно поиск:
Код:
for y:=0 to M-1 do
begin
   flag := (a[0,y]>=0); {все хорошо то, что... }
   if flag  then             {...хорошо начинается!}
   for x:=1 to N-1 do
   if a[x,y]<a[x-1,y] then
    begin
     flag:= false; {Опять мимо... (((}
     break; {тут нам делать нечего...}
    end;
   if flag then break; {нашли все-таки? Тогда выходим из внешнего цикла досрочно}
end;
   if flag then writeln ('Строка N=',y+1) else writeln ('Строка не найдена...');

Последний раз редактировалось Trotil; 13.12.2005 в 11:20. Причина: про положительность забыл....
Trotil вне форума  
Старый 13.12.2005, 11:20     # 3
DOric
Guest
 
Сообщения: n/a

Trotil
Спасибо большое, ты мне жизнь спас ))
а мона спросить а задание матриц знаеш как делает или примерно подсказать
 
Старый 13.12.2005, 11:23     # 4
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Цитата:
а мона спросить а задание матриц знаеш как делает или примерно подсказать
Советую открыть ЛЮБОЙ учебник по TP и посмотреть. Там все написано.
В любой задачке по матрицам показано, как ее объявлять и инициализировать.
Удачи в поиске.

Последний раз редактировалось Trotil; 13.12.2005 в 15:51.
Trotil вне форума  
Старый 15.12.2005, 18:03     # 5
R.E.Mus
Guest
 
Сообщения: n/a

Unhappy Великий Turbo Pascal...

Люди помогите пожалуйста в написании программы ...
Вроде не сложная , а не могу...
Задание: пользователь с клав-ры вводит массив, посчитать сумму чётых чисел целой части числа...
Я начало сделал а дальше ни как...
_________________________________________________________________
program r7;
uses CRT;
var X:array[1..3] of real;
Y:array[1..3] of string;
a,a1,a2,a3,l,c,h:integer;
begin
clrscr;
a1:=0;
a2:=0;
a3:=0;
for a:=1 to 3 do begin
writeln('enter array X[',a,']');
readln(X[a]);
STR(X[a],Y[a]);end;
for a:=1 to 3 do begin
delete(Y[a],16,5);end;
for a:=1 to 3 do begin
writeln('Y[',a,']=',Y[a]);
end;
for a:=1 to 3 do begin
delete(Y[a],16,5);
end;
readkey;
end.
_________________________________________________________________
 
Старый 15.12.2005, 18:37     # 6
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
Цитата:
R.E.Mus:
посчитать сумму чётых чисел целой части числа
Что это обозначает? Желательно на примере, а то я что-то не догнал краями...

Если означает, что нужно у каждого элемента массива отбросить дробную часть и просуммировать четные результы, то будет так:
Код:
s := 0;
for i := 1 to n do if (trunc (a[i]) div 2) = 0 then inc (s, trunc (a[i]));
Если нужно складывать четные цифры из целой части каждого числа, то код будет такой:
Код:
s := 0;
for i := 1 to n do begin
  p := trunc (a[i]);
  while p <> 0 do begin
    r := p mod 10;
    if (r div 2) = 0 then inc (s, r);
    p := p div 10;
  end;
end;
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 15.12.2005, 18:45     # 7
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Код:
write(st);
val(st,x,code);
i := int(x).
count:=0;
if (code<>0) then
while (i<>0) do
   begin 
        b:=i mod 10;
        if (b mod 2 = 0) then count:=count+b;
        i:=i div 10;
    end;
Вот примерчик для подсчета суммы четных цифр для одного числа.

Ghost, опередили...
Только не " if (r div 2) = 0 then inc (s, r);"
а " if (r mod 2) = 0 then inc (s, r);"

Последний раз редактировалось Trotil; 15.12.2005 в 18:52.
Trotil вне форума  
Старый 15.12.2005, 19:01     # 8
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
Trotil
Сенькс за поправку - как всегда глупо ошибся. В первом моем коде таже ботва: не div 2, а mod 2. Все-таки мне интересно, что конкретно имелось в виду...
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 15.12.2005, 19:20     # 9
R.E.Mus
Guest
 
Сообщения: n/a

Так ведь в этом и вся слива не понять....я думаль что надо преобразовать целочисленный массив в строковой...
 
Старый 15.12.2005, 19:26     # 10
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
R.E.Mus
Судя по коду Trotil'а - мы с ним поняли задачу одинаково: каждый элемент массива преобразовать к целому числу и найти сумму всех четных цифр в записи получившихся целых чисел. Преобразовывать в строки ничего не надо - можно просто real преобразовывать в integer (trunc() или int()), находить остаток от деления на 10 (mod 10), делить нацело на 10 (div 10) и так до тех пор, пока число не превратиться в 0 - таким образом можно перебрать все цифры, составляющие
целое число. Дальше нужно только проверить их четность, т.е. что остаток от деления на 2 равен 0 (... mod 2 = 0) и складывать.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 15.12.2005, 19:27     # 11
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Тогда выбирайте любую трактовку - которая вам больше нравится.
Вопрос к вам.
В первоначальном коде:
Цитата:
delete(Y[a],16,5);
- это че такое? Зачем и какую функцию выполняет?
Trotil вне форума  
Старый 15.12.2005, 19:32     # 12
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
Цитата:
Trotil:
это че такое? Зачем и какую функцию выполняет?
Судя по всему, это попытка избавиться в представлении вещественного числа от порядка (т.е. в записи вида ' 1.00000000000023E-0001' избавиться от 'E-0001'). Или от дробной части? Во всяком случае, я так понял...
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!

Последний раз редактировалось Ghost; 15.12.2005 в 19:34. Причина: склероZzz...
Ghost вне форума  
Старый 15.12.2005, 19:39     # 13
R.E.Mus
Guest
 
Сообщения: n/a

Это грубое округление(если его можно назвать так)...Из строкового массива Y удоляем 16 символов начиная с 5...т.е если вводишь 555 паскаль пишет 5.55000000000000E2(примерно), благодоря чудесной ф-ции Он пишет 5.550000000002(по русски 5.55*10^2)

Извеняюсь за наглость но не могли-бы вы написать полный код...от program до end. Заранее благодорю...
 
Старый 15.12.2005, 19:41     # 14
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
R.E.Mus
Это чересчур грубое округление. Можно было сделать так:
Код:
str (x[i]:10:6, y[i]);
Т.е. указать через ':' количество симолов на всю запись числа и на его дробную часть в строковом представлении.

З.Ы. И все-таки я угадал

З.Ы.Ы.
Код:
uses
  crt;
const
  n = 10;
var
  x: array [1..n] of real;
  i, p, k, s: integer;
begin
  clrscr;
  writeln ('введите массив:');
  for i := 1 to n do begin
    write ('x[', i:2, '] = ');
    readln (x[i]);
  end;
  s := 0;
  for i := 1 to n do begin
    p := trunc (x[i]);
    while p <> 0 do begin
      k := p mod 10;
      if (k mod 2) = 0 then inc (s, k);
      p := p div 10;
    end;
  end;
  writeln ('сумма четных цифр целых частей = ', s);
  writeln ('нажмите любую кнопку для выхода...');
  readkey;
end.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!

Последний раз редактировалось Ghost; 15.12.2005 в 19:46. Причина: склероZzz...
Ghost вне форума  
Старый 15.12.2005, 19:47     # 15
R.E.Mus
Guest
 
Сообщения: n/a

Я использовал для подгона в основном...Но и это таже не плохо..буду знать
 
Старый 16.12.2005, 19:31     # 16
R.E.Mus
Guest
 
Сообщения: n/a

Цитата:
Ghost:
uses
crt;
const
n = 10;
var
x: array [1..n] of real;
i, p, k, s: integer;
begin
clrscr;
writeln ('введите массив:');
for i := 1 to n do begin
write ('x[', i:2, '] = ');
readln (x[i]);
end;
s := 0;
for i := 1 to n do begin
p := trunc (x[i]);
while p <> 0 do begin
k := p mod 10;
if (k mod 2) = 0 then inc (s, k);
p := p div 10;
end;
end;
writeln ('сумма четных цифр целых частей = ', s);
writeln ('нажмите любую кнопку для выхода...');
readkey;
end.
Тут такая штучка....считает сумму чётных чисел только последней ячейки массива.
 
Старый 16.12.2005, 19:45     # 17
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
R.E.Mus
Не могет такого быть. Только что все проверил - работает. Может мы по разному воспринимаем задачу. Вот тест (для n = 3):
1. Ввожу числа 123.4, 234.5, 345.6
2. Целые части: 123, 234, 345
3. Четные цифры: в первом - 2, во втором - 2, 4, в третьем - 4
4. Сумма = 12
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 19.12.2005, 20:05     # 18
R.E.Mus
Guest
 
Сообщения: n/a

Question

А что-бы удалить удалить все числа от 1 до 5 из каждой ячейки массива...что надо сделать???
 
Старый 08.03.2007, 12:16     # 19
AInura
Guest
 
Сообщения: n/a

Можете помочь? Задача такая: Шарикб ударяясь об стенкию отскакивает. ну потом движется из стороны в сторону... ПОмогите пожалуйста
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:33.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.