IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> помогите дорешать 2 задачки
Vinsent90
сообщение 27.05.2008 12:13
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Возникли проблемы при решении 2х задач. blink.gif

1) Задан двухмерный массив, найти наибольший и наименьший элементы и поменять их местами.
Прикрепленный файл  MAXMIN.PAS ( 1.11 килобайт ) Кол-во скачиваний: 382
. Не могу поменять местами элементы массива sad.gif

2) Дана символьная строка. Определить, содержит ли строка числа, если да, то вывести на экран только чётные.
Прикрепленный файл  STROKA.PAS ( 431 байт ) Кол-во скачиваний: 373
.

Помогите плиз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sintanial
сообщение 27.05.2008 13:48
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Мартын

Репутация: -  1  +


НУ для первого я думаю так, запоминаешь для минимального -его индексы в переменные ну например k,l а максимульный запоминаешь допустим в s,t . Дальше тупо берешь a[k,l]:=min; a[s,t]:=max;. Вроде дожно получиться =)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Vinsent90
сообщение 27.05.2008 16:03
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(sintanial @ 27.05.2008 14:48) *

НУ для первого я думаю так, запоминаешь для минимального -его индексы в переменные ну например k,l а максимульный запоминаешь допустим в s,t . Дальше тупо берешь a[k,l]:=min; a[s,t]:=max

А как запомнить индексы ИМЕННО максимального или минимального элементов?? У меня запоминаются только индексы последнего значения матрицы. Может кто на пальцах объяснит...или прогу допишет dry.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.05.2008 17:00
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


много раз выкладывалось
ну идея такая...
чтобы найти минимум ты в цикле делаешь, например:
if a[i,j]<min then
min:=a[i,j];

а надо делать
if a[i,j]<a[mini,minj] then
begin
mini:=i;
minj:=j;
end;

то есть запоминаешь не значение элемента, а его индексы.
аналогично с максимальным.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Vinsent90
сообщение 27.05.2008 20:33
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Не находятся коофициенты наименьшего числа. Кто ошибку найдёт?

Код
Program MaxMin;
uses crt;
var i,j,m,n,k,l,s,t,y,x : integer;
     max, min            : integer;
     maxi,maxj,mini,minj : integer;
     A, B, C: array[1..10,1..10] of integer;
Begin
clrscr;
      Write('koli4estvo strok, ne bolee 10 - '); ReadLn(N);
      Write('koli4estvo stolbcov, ne bolee 10 - '); ReadLn(M);
      if ((1>n) or (n>10) or (1>m) or (m>10))
      then begin writeln; writeln('OSHIBKA'); readln; halt; end;
        For i := 1 to N do
        For j := 1 to M do
          begin Write('A[',i, ',',j,']= ');
                ReadLn(A[i, j]);
          end;
       WriteLn;
      WriteLn(' matrica A');
      WriteLn;
      For i := 1 to N do
        begin
          For j := 1 to M do Write(A[i, j] : 5 );
          WriteLn;
          WriteLn;
        end;

  max:=A[1,1];
        for i:=1 to n do begin
        for j:=1 to m do
            if A[i,j]>max then max:=A[i,j]
            end; writeln ('naibolshii element = ', max);

  min:=A[1,1];
        for i:=1 to n do begin
        for j:=1 to m do
            if A[i,j]<min then min:=A[i,j];
            end;writeln ('naimenshii element = ', min);
            writeln;

        for i:=1 to n do begin
        for j:=1 to m do
            if A[i,j]>A[maxi, maxj] then begin
            maxi:=i; maxj:=j; end; end;

        for i:=1 to n do begin
        for j:=1 to m do
            if A[i,j]<A[mini, minj] then begin
            mini:=i; minj:=j; end; end;

writeln ('   mini=',mini,'   minj=',minj,'  maxi=',maxi,'  maxj=',maxj); writeln;

    A[maxi, maxj]:= min;
    A[mini, minj]:= max;

  WriteLn(' otvet= ');
  WriteLn;
     For i := 1 to N do
   begin
     For j := 1 to M do Write(A[i, j] : 5 );
  WriteLn; WriteLn; end;

Readkey;
clrscr;
end.


P.S. Со второй задачей помогите плз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Vinsent90
сообщение 28.05.2008 14:48
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


С первой задачей разобрался, жду коментариев на счёт второй...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Vinsent90
сообщение 28.05.2008 20:03
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Как определить, содержит ли символьная строка цифры ???

Код
program CTPOKA;
Uses crt;
var n, x, i : integer;
    a: string;

begin

Writeln ('BBEguTe CTpoky');
readln (a);
n:=length(a);

    for i:=1 to n do
    begin



            

    end;

readkey;
clrscr;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 28.05.2008 20:08
Сообщение #8


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Как определить, содержит ли символьная строка цифры ???


i := 1;
while (i <= length(s)) and not (s[i] in ['0'..'9']) do
inc(i);
if i <= length(s) then
writeln('includes numbers')
else
writeln('not includes numbers');


Сообщение отредактировано: klem4 - 28.05.2008 20:09


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Vinsent90
сообщение 29.05.2008 10:35
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Задачи решил, всем спасибо. smile.gif

Если кому нужны решения , выкладываю
Прикрепленный файл  1.PAS ( 1.68 килобайт ) Кол-во скачиваний: 337

Прикрепленный файл  2.PAS ( 796 байт ) Кол-во скачиваний: 348


Сообщение отредактировано: Vinsent90 - 29.05.2008 10:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"