0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 45
1

Определить сколько элементов массива входит в диапазон (a,b)

02.06.2012, 15:44. Показов 2260. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ПОМОГИТЕ ПОЖАЛУЙСТА!!!
Задан двумерный массив целых чисел. Напишите программу которая определит, сколько элементов массива входит в диапазон (a,b) где a и b - числа которые пользователь вводит с клавиатуры. в случае если такого диапазона чисел нет в массиве- вывести соответствующее сообщение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2012, 15:44
Ответы с готовыми решениями:

Определить, сколько среди элементов массива чисел, больших i-го элемента массива
1. Дан массив,содержащий n элементов. Определить, сколько среди них чисел, больше за i-й элемент...

Дан массив из N элементов. Определить, сколько элементов массива больше заданного числа (константы)
Дан массив из N элементов. Определить, сколько элементов массива больше заданного числа(константы)

Определить сколько раз слово “did” входит в заданный текст
Помогите Сделать лаби, пожалуста, я не могу сделать их, так как времени мало, завтра должен...

Определить, сколько раз данная подстрока входит в строку?
Пожалуйста помогите, люди!!! Вот несколько задачек, они очень простые, но я совсем не разбираюсь в...

8
20 / 20 / 15
Регистрация: 31.03.2012
Сообщений: 28
02.06.2012, 16:32 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program erwt;
const e=5;                     {Поменяйте, что бы изменить размер массива}
      w=6;
var m: array [1..e,1..w] of integer;
    a,b,c,n,k: integer;
begin
write('ввод от ');read(n);
write('ввод до ');read(k);
for a := 1 to e do begin       {Заполнение массива случайными элементами}
for b := 1 to w do begin       {и его вывод на экран}
m[a,b] := Random(99)+1;
if m[a,b]>9 then write(m[a,b],' ') else write(m[a,b],'  ');
end;
writeln();
end;
writeln();
{---------------------------}  {Начало обработки данных}
for a := 1 to e do
for b := 1 to w do
if m[a,b]>=n then
if m[a,b]<=k then c:=c+1;
if c <> 0 then writeln('количество найденных элементов: ',c) else
writeln('в заданном диапазоне элементы не найдены');
end.
1
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 45
02.06.2012, 17:12  [ТС] 3
я написал так и программа вылетает после ввода чисел. что не так?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses  SysUtils;
 
const e=5;
      w=6;
var m: array [1..e,1..w] of integer;
    a,b,c,n,k: integer;
begin
write('vvedi chislo ot');read(n);
write('vvedi chislo do');read(k);
for a := 1 to e do begin
for b := 1 to w do begin
m[a,b] := Random(99)+1;
if m[a,b]>9 then write(m[a,b],' ') else write(m[a,b],'  ');
end;
writeln;
end;
writeln;
for a := 1 to e do
for b := 1 to w do
if m[a,b]>=n then
if m[a,b]<=k then c:=c+1;
if c <> 0 then writeln('kol-vo naidennuh elementov: ',c) else
writeln('v zadannom diapazone elementu ne naidenu');
end.
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
02.06.2012, 17:42 4
1. не совсем понял, вернее совсем не понял, зачем эта строчка?
Цитата Сообщение от Alteisen Посмотреть сообщение
if m[a,b]>9 then write(m[a,b],' ') else write(m[a,b],' *');
2. в задании не указывается, что массив должен быть 5х6, поэтому более правильно будет, чтобы пользователь сам вводил размеры массива..

как то так..
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const
  nmax=100;
 
var
  m: array [1..nmax, 1..nmax] of integer;
  i, j, c, n, k, e, w: integer;
 
begin
  write('Vvedite razmeri massiva: ');
  readln(e,w);
  write('vvedi nachalo diapazona: ');read(n);
  repeat
    write('vvedi konec diapazona: ');read(k);
  until k>n;
  for i := 1 to e do 
  begin
    for j := 1 to w do 
    begin
      m[i, j] := Random(99) + 1;
      write(m[i, j]:4);
    end;
    writeln;
  end;
  writeln;
  for i := 1 to e do
    for j := 1 to w do
      if m[i, j] >= n then
        if m[i, j] <= k then c := c + 1;
  if c <> 0 then writeln('kol-vo naidennuh elementov: ', c) else
    writeln('v zadannom diapazone elementu ne naidenu');
  readln;
end.
1
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 45
02.06.2012, 18:07  [ТС] 5
эта программа вылетает
и можно ли сделать так что бы выбранный случайно массив выводился на экран
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
02.06.2012, 18:37 6
попробуйте это
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const
  nmax=100;
 
var
  m: array [1..nmax, 1..nmax] of integer;
  i, j, c, n, k, e, w: integer;
 
begin
  randomize;
  write('Vvedite razmeri massiva: ');
  readln(e,w);
  write('vvedi nachalo diapazona: ');readln(n);
  repeat
    write('vvedi konec diapazona: ');readln(k);
  until k>n;
  for i := 1 to e do 
  begin
    for j := 1 to w do 
    begin
      m[i, j] := Random(99) + 1;
      write(m[i, j]:4);
    end;
    writeln;
  end;
  writeln;
  
  for i := 1 to e do
    for j := 1 to w do
      if m[i, j] >= n then
        if m[i, j] <= k then c := c + 1;
  if c <> 0 then writeln('kol-vo naidennuh elementov: ', c) else
    writeln('v zadannom diapazone elementu ne naidenu');
  readln;
end.
Добавлено через 26 секунд
изначально только код подправил - не проверяя..
1
20 / 20 / 15
Регистрация: 31.03.2012
Сообщений: 28
02.06.2012, 19:20 7
Цитата Сообщение от ermolay Посмотреть сообщение
1. не совсем понял, вернее совсем не понял, зачем эта строчка?
Сообщение от Alteisen
if m[a,b]>9 then write(m[a,b],' ') else write(m[a,b],' *');
Для красивого вывода строки, так сказать кустарный аналог вашего write(m[i, j]:4);

Цитата Сообщение от ermolay Посмотреть сообщение
2. в задании не указывается, что массив должен быть 5х6, поэтому более правильно будет, чтобы пользователь сам вводил размеры массива..
Ваш упрек не уместен, в задании сказано, что массив уже задан, а пользователь должен задавать только диапазон. Если вы считаете, что моего аргумента не достаточно, скажите, почему вы ограничили размер массива только 100, а не скажем 1000? Вдруг пользователь введет 8000, а программа не будет работать или даже выдаст ошибку ввода? Что пользователю помешает гневно потребовать объяснений? Ставьте ограничения..
Чтобы вам не резало глаза...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program erwt;
const e=5;
      w=5;
var m: array [1..e,1..w] of integer;
    a,b,c,n,k: integer;
begin
write('vvedi nachalo diapazona: ');read(n);
repeat
write('vvedi konec diapazona: ');read(k);
until k>n;
for a:=1 to e do begin
for b:=1 to w do begin
m[a,b] := Random(99) + 1;
write(m[a,b]:4);
end;
writeln;
end;
writeln;
for a:=1 to e do
for b:=1 to w do
if m[a,b] >= n then
if m[a,b] <= k then c:=c+1;
if c <> 0 then writeln('kol-vo naidennuh elementov: ', c) else
writeln('v zadannom diapazone elementu ne naidenu');
end.
Добавлено через 27 минут
Цитата Сообщение от Илюха12345 Посмотреть сообщение
я написал так и программа вылетает после ввода чисел. что не так?
Думаю, что виноват:
Pascal
1
2
uses
 SysUtils;
Проверьте, всё ли работает с crt; у меня нет модуля SysUtils, поэтому проверить не могу.
1
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
02.06.2012, 19:31 8
Цитата Сообщение от Alteisen Посмотреть сообщение
вылетает после ввода чисел
после read нужно ставить readln или сразу вместо read - readln
форум - турбо паскаль, значит в конце тоже нужно установить readln;
Цитата Сообщение от Alteisen Посмотреть сообщение
1. не совсем понял, вернее совсем не понял, зачем эта строчка?
в коде илюхи не было звездочки, то есть после then и после else шли абсолютно одинаковые конструкции, вашу звездочку не заметил, не обессудьте..
1
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 45
04.06.2012, 15:21  [ТС] 9
а что обозначает
m[a,b] := Random(99) + 1;
почему не просто m[a,b] := Random(99)

Добавлено через 22 минуты
а если со знаком минус
m[a,b] := Random(99) - 1;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2012, 15:21
Помогаю со студенческими работами здесь

Определить, сколько различных литер входит в заданный текст
Определить, сколько различных литер входит в заданный текст, содержащий не более 100 литер и...

Определить сколько раз входит в строку группа букв
Дана символьная строка. Определить сколько раз входит в нее группа букв:abc

Определить, сколько чисел в целочисленном массиве попадает в заказанный диапазон
Заполнить одномерный массив из М элементов. Затем с помощью процедуры заполнить одномерный...

Определить, сколько элементов массива меньше числа 9
Помогите пожалуйста написать программы. 1) Определить сколько элементов массива меньше числа 9. (...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru