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

Подпрограммы: для каждого из массивов вывести на печать повторяющиеся элементы, и количество их повторений

06.05.2010, 16:20. Показов 2857. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задачка:
Заданы три одномерных массива разной размерности.Для каждого из массивов вывести на печать повторяющиеся элементы и количество их повторений.
Собственно вот мой код, при котором выводятся ошибки:
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SUBROUTINE Povtor(R,N)
    k=0
    Do i=1,N
     Do j=1,N
      IF (R(i) .EQ. R(J)) THEN 
      WRITE(*,*)'повторяющ. элемент',R(i)
          k=k+1
      ENDIF
     ENDDO
    ENDDO
    WRITE(*,*)'kol-vo',k
    RETURN
    END
    STOP
! сама прога
DIMENSION A(2),B(3),C(3)
READ(5,*)A,B,C
CALL Povtor(A,2)
CALL Povtor(B,3)
CALL Povtor(C,3)
END
ну и сама ошибка
--------------------Configuration: labuss8 - Win32 Debug--------------------
Compiling Fortran...
C:\Program Files\Microsoft Visual Studio\Common\MSDEV98\My Projects\laba8\labus8.for
C:\Program Files\Microsoft Visual Studio\Common\MSDEV98\My Projects\laba8\labus8.for(6) : Error: A specification statement cannot appear in the executable section.
SUBROUTINE Povtor(R,N)
--------^
C:\Program Files\Microsoft Visual Studio\Common\MSDEV98\My Projects\laba8\labus8.for(17) : Error: A RETURN statement is invalid in the main program.
RETURN
--------^
Error executing df.exe.

labuss8.exe - 2 error(s), 0 warning(s)
Собственно кто знает подскажите как исправить если не трудно, ну или свой вариант кода.
С Уважением rusik
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2010, 16:20
Ответы с готовыми решениями:

Массивы. Найти повторяющиеся элементы и количество повторений каждого из таких элементов
Добрый день! Нужна помощь в написании программы: В произвольном массиве из n целых чисел (n<100)...

Для каждого из массивов определить повторяющиеся элементы
"Подпрограммы." Заданы три одномерных массива разной размерности. Для каждого из массивов...

Заданы три одномерных массива разной размерности Для каждого из массивов определить повторяющиеся элементы
ЕСТЬ ОСНОВНОЙ КОД ПРОГРАММЫ,НО ВЫДАЕТ ОШИБКУ.Пожалуйста,помогите! Sub main() Dim A() As Double...

В произвольном тексте найти повторяющиеся слова,определить количество повторений каждого из них
В произвольном тексте найти повторяющиеся слова,определить количество повторений каждого из них....

7
18 / 18 / 0
Регистрация: 27.02.2010
Сообщений: 58
07.05.2010, 10:51 2
1. Ошибка в том, что вы в подпрограмму передаете один массив и его размерность, а надо подавать два. В конце подпрограммы стоп не нужен.
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
SUBROUTINE Povtor(R,N,P,M)
  k=0
  Do i=1,N
    Do j=1,M
      IF (R(i) .EQ. P(J)) THEN 
        WRITE(*,*)'повторяющ. элемент',R(i)
        k=k+1
      ENDIF
    ENDDO
  ENDDO
  WRITE(*,*)'kol-vo',k
  RETURN
  END
2. Соответственно, в программе надо вызывать подпрограмму, передавая ей по два массива.
Fortran
1
2
3
4
5
DIMENSION A(2),B(3),C(3)
READ(*,*)A,B,C
CALL Povtor(A,2,B,3)
CALL Povtor(B,3,C,3)
CALL Povtor(A,2,C,3)
3. Чтобы пользователю было понятно что вводить и сколько, напишете побольше сообщений.
0
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 5
07.05.2010, 15:20  [ТС] 3
Цитата Сообщение от engineer-002 Посмотреть сообщение
1. Ошибка в том, что вы в подпрограмму передаете один массив и его размерность, а надо подавать два. В конце подпрограммы стоп не нужен.
ага но, почему 2?да два цикла всё ясно, но мы ищём повторяющийся в каждом массиве , а не между ними
тоесть это явно не верно
Fortran
1
CALL Povtor(A,2,B,3)
где-то логическая ошибка
0
18 / 18 / 0
Регистрация: 27.02.2010
Сообщений: 58
07.05.2010, 19:31 4
Понял значит не так. Тогда по другому.
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SUBROUTINE Povtor(R,N)
  k=0
  Do i=1,N-1
    Do j=i+1,N
      if(i /= j) then
        IF (R(i) .EQ. R(J)) THEN 
          WRITE(*,*)'повторяющ. элемент',R(i)
          k=k+1
        ENDIF
      end if
    ENDDO
  ENDDO
  WRITE(*,*)'kol-vo',k
  RETURN
  END
0
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 5
08.05.2010, 00:50  [ТС] 5
Цитата Сообщение от engineer-002 Посмотреть сообщение
Понял значит не так. Тогда по другому.
хм и как в целом будет выглядеть код? если для примера взять один массив
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PROGRAM rusik
    DIMENSION A(5)
    READ(*,*)A
    CALL Povtor(A,5)
    END
    SUBROUTINE Povtor(R,N)
      k=0
      Do i=1,N-1
      Do j=i+1,N
      if(i .NE. j) then
        IF (R(i) .EQ. R(j)) THEN 
          WRITE(*,*)'повторяющ. элемент',R(i)
          k=k+1
        ENDIF
      endif
      ENDDO
      ENDDO
      WRITE(*,*)'kol-vo',k
      RETURN
      END
То что то пару предупреждений и ошибка после ввода данных, странно всё это.
0
18 / 18 / 0
Регистрация: 27.02.2010
Сообщений: 58
11.05.2010, 10:10 6
Работает, чтоб предупреждение не выдавалось, надо описать в подпрограмме массив.
Fortran
1
DIMENSION R(N)
0
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 5
11.05.2010, 18:42  [ТС] 7
Цитата Сообщение от engineer-002 Посмотреть сообщение
Работает, чтоб предупреждение не выдавалось, надо описать в подпрограмме массив.
Fortran
1
DIMENSION R(N)
ага работает вот только не верно(см скриншот, для пример взял только 1 массив A(10)
Миниатюры
Подпрограммы: для каждого из массивов вывести на печать повторяющиеся элементы, и количество их повторений  
0
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 5
11.05.2010, 23:20  [ТС] 8
тоесть не верно именно кол-во повторяющихся элементов
0
11.05.2010, 23:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2010, 23:20
Помогаю со студенческими работами здесь

В массиве найти повторяющиеся элементы и количество их повторений
Помогите решить задачку В произвольном массиве из n целых чисел (n<100) найти повторяющиеся...

Вывести упорядоченные по убыванию повторяющиеся элементы массива и число повторений
Выдает ошибку в коде: Нужно: Вывести упорядочены по убыванию повторяющиеся элементы произвольного...

Вывести на экран только повторяющиеся цифры и общее количество их повторений.
помогите выполнить задание. очень надо!!! дано n-значное целое число типа longint. произвести с...

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


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

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

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