Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37

Дана матрица: верно ли, что в каждой его строке встречаются все числа от 1 до N по одному разу?

26.11.2014, 21:14. Показов 1421. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводится квадратный массив NxN. Верно ли, что в каждой его строке встречаются все числа от 1 до N по одному разу.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2014, 21:14
Ответы с готовыми решениями:

Вывести все слова, которые встречаются в строке по одному разу
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами –...

Напечатать все слова, которые встречаются в строке по одному разу
Задание такое. Дана строка, напечатать все слова, которые встречаются в ней по одному разу. Код моей программы ...

Проверить, встречаются ли в строке хотя бы по одному разу все арабские цифры
Для введенной с клавиатуры строки символов, содержащей буквы латинского алфавита, арабские цифры, знаки препинания и пробелы, проверить,...

9
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
26.11.2014, 23:19
тут многое зависит от того, какое максимальное значение может принимать N
(если до 255 - то рекомендую использовать тип "множество" для решения задачи).
0
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37
27.11.2014, 07:02  [ТС]
a vy smojete eto sdelat? prosto segodn9 poslendiy den'.... a 9 ne mogu rewit'
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
27.11.2014, 08:28
да я то смогу. Вопрос - а Вы сами почему не хотите сделать? Вы хоть что-то написать пытались?!
Ну хоть ввод и вывод матрицы сделали?

И ещё - вы не ответили на важный вопрос по существу - какое максимальное значение может принимать N.
Это важно - не любой алгоритм может подойти...
0
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37
27.11.2014, 08:44  [ТС]
Sergio Leone, ne vajno kakoe max znachenie imeet massiv!!!! naprimer vvodits9 5... togda massiv to est matrica budet 5x5....
1 3 4 5 2
3 4 2 1 5
4 2 5 3 1
4 3 2 5 1
5 3 4 2 1
zdes' ot 1 do 5 v kajdom stroke vstrechaets9 tolko 1 raz. znachit verno...

Добавлено через 3 минуты
vse ravno nikto ne budet vvodit bolwie chisla!!! sam pytals9! ne poluchilos'.... u men9 tut dafiga zadach....
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
27.11.2014, 08:59
Цитата Сообщение от Rahmanur Посмотреть сообщение
ne vajno kakoe max znachenie imeet massiv!!!! naprimer vvodits9 5... togda massiv to est matrica budet 5x5....
ок.
значит, с размерностью (максимальной) мы определились.

теперь покажите ваш код, где Вы описываете массив в где вводите (или заполняете) массив числами?
Напишите это - проверку на "Верно ли, что в каждой его строке встречаются все числа от 1 до N по одному разу"
я Вам, так и быть, напишу. В качестве наглядного учебного пособия.
0
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37
27.11.2014, 10:03  [ТС]
Sergio Leone, tolko ne smeites'...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
const n=7;
var
a: array[1..n,1..n] of integer;
i,j: integer;
begin 
for i:=0 to n do
begin 
for j:=0 to n do
a[i,j]:=1+random(n)
end;
writeln(a[i,j])
end.
tut vivodit owibku: "Program1.pas(9) : Runtime exception: Индекс находился вне границ массива."
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
27.11.2014, 11:00
Лучший ответ Сообщение было отмечено Rahmanur как решение

Решение

ничего смешного. Все мы когда-то начинали учиться. И порой делали элементарные ошибки.
Для начала - вполне себе код.

Цитата Сообщение от Rahmanur Посмотреть сообщение
ut vivodit owibku: "Program1.pas(9) : Runtime exception: Индекс находился вне границ массива."
угу. смотрите, вы границы массива объявили от 1 до n (a: array[1..n,1..n] of integer
а циклы по строчкам/столбцам от какого значия начинаете?
от нуля:
Pascal
1
2
for i:=0 to n do
    for j:=0 to n do
а нулевого элемента и нет!
Вот и "выход индекса за пределы"

Цитата Сообщение от Rahmanur Посмотреть сообщение
a[i,j]:=1+random(n)
если массив заполнить случайными числами, то можно с высокой долей уверенности (>99%) заявить,
что матрица не сложится так, чтобы все строчки были представлены всем числами от 1 до N
это практически НЕВЕРОЯТНО.
Т.е. программа всегда будет выдавать, что "Нет, не верно, что каждая строка содержит числа от 1 до N ровно один раз."

но, разумеется, на алгоритм это никак не влияет.

Добавлено через 32 минуты
обещал написать код в учебных целях.
Сделал:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const
  MaxN=20;  {максимально допустимая размерность массива}
  
var
 a : array[1..MaxN,1..MaxN] of byte;
 n : integer;
 i,j,k : integer;
 NumbersInLine : set of byte;
 isGoodArray : boolean;
begin
 randomize;
 repeat
   WriteLn('Введите размерность массива  N от 1 до ',MaxN,' : '); Readln(n);
 until (n>=1) and (n<=MaxN);
 
 for i:=1 to n do
 begin
   for j:=1 to n do begin
      a[i,j]:=1+random(n);
      
      {для отладки первые две строки заполним всегда одинаково}
      if i=1 then a[i,j] := j; {первую строчку массива заполним числами
                                 в обратном порядке:  N.. 4 3 2 1}
      if i=2 then a[i,j] := n-j+1; {вторую строчку массива заполним числами
                                 в обратном порядке:  N.. 4 3 2 1}
      {----- конец фиксированного заполнения для отладки ---------}
                                 
      Write(a[i,j]:2,' ');
   end;
   writeln; {перевод на новую строку}
 end;
 
 {А теперь проверим массив на соотвествие заданию}
 isGoodArray := true; {перед проверкой считаем,что наш массив соотвествует требованиям}
 for i:=1 to n do begin
    NumbersInLine := []; {это для сохранения чисел, которые есть в строке}
    for j:=1 to n do begin
      if a[i,j] in NumbersInLine {если число уже есть в множестве, значит,
                                   такое число уже было в строке ранее,
                                   значит, условие задания НЕ выполняется!
                                   можно прерывать цикл! }
        then begin
          isGoodArray := false;
          Writeln;
          WriteLn('*Отладка: Облом произошёл на строке ',i,
                         ' число ',a[i,j],' встречается более одного раза!' );
          Break
        end
        else {такого числа ещё не было, занесём его в множестов}
          Include(NumbersInLine, a[i,j]);
    end;
    
    if isGoodArray then {если облома ещё не было, то}
       {в цикле проверим, все ли числа от 1 до n есть во множестве
        ВНИМАНИЕ! При заполнении массива случайными числами от 1 до N
           это можно не делать - числа либо повторятся (и облом произойдёт выше),
             либо будут строго по одному разу!}
       for k:=1 to n do
         if not (k in NumbersInLine) then begin
            isGoodArray := false;
            WriteLn('*Отладка 2: Облом произошёл на строке ',i,
               ' в строке нет, как минимум, числа ',k);
            Break;  {остальные числа уже не проверяем, раз одного нет,
                       то условие уже нарушено!}
         end;
 
    if not isGoodArray then Break; {всё, если условие нарушено,остальные строки
       матрицы проверять смысла нет, прерываем цикл i по строка !}
  end;
  
  if isGoodArray
    then WriteLn('Да, верно, что в каждой строке встречаются все числа от 1 до N по одному разу.')
    else WriteLn('Нет, не верно, что в каждой строке встречаются все числа от 1 до N по одному разу.');
end.
1
1 / 1 / 0
Регистрация: 22.10.2014
Сообщений: 37
27.11.2014, 11:05  [ТС]
Sergio Leone, Spasibo!!!
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
27.11.2014, 12:21
Цитата Сообщение от Rahmanur Посмотреть сообщение
Sergio Leone, Spasibo!!!
не за что!

Польза от этого кода будет только в том случае, если Вы его разберете - что там делается и для чего это нужно.
Будут вопросы - обращайтесь, отвечу.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2014, 12:21
Помогаю со студенческими работами здесь

Проверить, встречаются ли в строке хотя бы по одному разу все гласные буквы
Проверить, встречаются ли в строке хотя бы по одному разу все гласные буквы (заглавные). Написал такой код: #include...

Напечатать все слова, которые встречаются в строке только по одному разу.
Вот такая вот задача: Дана строка s, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв. Между соседними...

Дана последовательность слов. Напечатать все слова последовательности, которые встречаются в ней по одному разу.
Дана последовательность слов. Напечатать все слова последовательности, которые встречаются в ней по одному разу. :(

Дана последовательность слов. Напечатать все слова последовательности, которые встречаются в ней по одному разу
Дана последовательность слов. Напечатать все слова последовательности, которые встречаются в ней по одному разу ПЕРЕВЕСТИ В С++ var...

Дана последовательность слов. Напечатать все слова последовательности, которые встречаются в ней по одному разу.
1.8. 2.Составить программу печати в возрастающем порядке всех цифр, входящих в десятичную запись данного числа. 3.8. Дана...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru