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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 20:01   #1
logys
Новичок
Джуниор
 
Регистрация: 11.06.2011
Сообщений: 5
По умолчанию матрица и строки (pascal)

1)Дана матрица размером 5Х5 элементов, заполненная случайным образом числами от 10 до 30, определить сколько элементов матрицы равно целое от (МАХ+МИН)/2, где МАХ и МИН это максимальное и минимальное значения среди элементов матрицы.
2)Дана произвольная строка символов. Распечатать все слова с количеством символов больших 4 и меньших 10. Пробелов между словами может быть произвольное количество.
3)Дана произвольная строка символов. Определить самое короткое слово в строке. Выяснить, имеются ли этом слове сдвоенные буквы. Выдать сообщение.

если получится решить то хотя бы с 1 и 3 заранее благодарен
logys вне форума Ответить с цитированием
Старый 11.06.2011, 20:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И? Покажите ваши наработки, расскажите, что не получается. Либо решу за небольшое вознаграждение вебмани или ЯД (icq слева под ником или ЛС).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.06.2011, 20:45   #3
logys
Новичок
Джуниор
 
Регистрация: 11.06.2011
Сообщений: 5
По умолчанию

вот к первой
var a:array[1..5,1..5] of integer;
var i,j,max,min,p,z,k:integer;
Begin
for i:= 1 to 5 do begin
fot j:= 1 to 5 do
a[i,j]:= random(31)+10; (вот здесь не уверен)
write (a[i,j]:2,' ');
end;
for i:= 1 to 5 do
fot j:= 1 to 5 do
if a[i,j]>max then begin
max:=a[i,j]; z:= '
end;
write (max); write (z);
for i:= 1 to 5 do
fot j:= 1 to 5 do
if a[i,j]<min then min:=a[i,j]; k:='; end;
writeln(min);
writeln(k);
а дальше не знаю как делать
logys вне форума Ответить с цитированием
Старый 11.06.2011, 20:58   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
random(31)+10;
Вроде правильно, но забыли randomize где-нибудь в начале программы, чтобы последовательность чисел не повторялась.
Перед циклом где, max и min ищите надо присвоить им значение 1 элемента массива: max:=a[1,1] и аналогично min, иначе Паскаль присвоит им 0.
Цитата:
z:= '
k:='
Это вы что хотели сделать?

И используйте тег [CODE] (значок #) для сохранения форматирования и подсветки кода в сообщении.

upd: ой, точнее random(21)+10 надо: получаем число от 0 до 20 и прибавляем к нему 10.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 11.06.2011 в 21:11.
Alex11223 вне форума Ответить с цитированием
Старый 11.06.2011, 21:12   #5
logys
Новичок
Джуниор
 
Регистрация: 11.06.2011
Сообщений: 5
По умолчанию

k и z походу не нужны а вот здесь "определить сколько элементов матрицы равно целое от (МАХ+МИН)/2 " примерно какую операцию надо выполнить?
logys вне форума Ответить с цитированием
Старый 11.06.2011, 21:17   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Опечатка, наверно?
Цитата:
определить сколько элементов матрицы равны целому от (МАХ+МИН)/2
Пройти всю матрицу циклом for и когда найден элемент (if), который равен (max+min) div 2, то +1 к какой-нибудь переменной-счетчику (перед циклом желательно ее обнулить).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 11.06.2011 в 21:22.
Alex11223 вне форума Ответить с цитированием
Старый 11.06.2011, 21:19   #7
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

2.
Код:
var
  Stroka: string;
  Temp: string;

  i,j: Integer;

begin
  Stroka := 'qwertyuiop      qwef qwertyuiopasd';

  j := Length(Stroka);

  if Stroka[j] <> ' ' then
  begin
    Stroka := Stroka + ' ';
    Inc(j);
  end;

  for i := 1 to j do
    if Stroka[i] = ' ' then
    begin
      if (Length(Temp) >= 4) and (Length(Temp) <= 10) then
      begin
        WriteLn(Temp);
      end;
      Temp := '';
    end
    else
      Temp := Temp + Stroka[i];
end..
И 3:
Код:
var
  Stroka: string;
  Temp: string;
  Resultat: string;

  i, j: Integer;

begin
  Stroka := 'qwertyuiop      qweff qwertyuiopasd';

  j := Length(Stroka);

  if Stroka[j] <> ' ' then
  begin
    Stroka := Stroka + ' ';
    Inc(j);
  end;
  
  Resultat := Stroka;

  for i := 1 to j do
    if Stroka[i] = ' ' then
    begin
      if Length(Temp) > 0 then
        if Length(Temp) < Length(Resultat) then
          Resultat := Temp;
      Temp := '';
    end
    else
      Temp := Temp + Stroka[i];
      
  j := Length(Resultat) - 1;
  
  Temp := 'нету';
  
  for i := 1 to j do
    if Resultat[i] = Resultat[i + 1] then
      Temp := 'есть';

  WriteLn('Самое короткое слово: ', Resultat,'. Сдвоенные буквы ', Temp);
end.

Последний раз редактировалось kangreon; 11.06.2011 в 21:39.
kangreon вне форума Ответить с цитированием
Старый 11.06.2011, 21:22   #8
logys
Новичок
Джуниор
 
Регистрация: 11.06.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от kangreon Посмотреть сообщение
2.
Код:
var
  Stroka: string;
  Temp: string;

  i,j: Integer;

begin
  Stroka := 'qwertyuiop      qwef qwertyuiopasd';

  j := Length(Stroka);

  if Stroka[j] <> ' ' then
  begin
    Stroka := Stroka + ' ';
    Inc(j);
  end;

  for i := 1 to j do
    if Stroka[i] = ' ' then
    begin
      if (Length(Temp) >= 4) and (Length(Temp) <= 10) then
      begin
        WriteLn(Temp);
      end;
      Temp := '';
    end
    else
      Temp := Temp + Stroka[i];
end..
благодарю =)
logys вне форума Ответить с цитированием
Старый 11.06.2011, 21:54   #9
logys
Новичок
Джуниор
 
Регистрация: 11.06.2011
Сообщений: 5
По умолчанию

Alex11223

А что можете сказать про 3 задачу ?
logys вне форума Ответить с цитированием
Старый 11.06.2011, 22:02   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Выше же решение 3 (не знаю насколько верно).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица N на N Pascal kostazs Помощь студентам 9 03.10.2010 21:17
Матрица в Pascal Nastik Помощь студентам 2 07.06.2010 21:55
Матрица,строки jorjinho10 Паскаль, Turbo Pascal, PascalABC.NET 1 04.05.2009 10:12
Матрица в Pascal W_P Помощь студентам 7 05.03.2008 05:51