QBASICBOOK.ru: сайт про QB64

Опубликовано: 2018-10-07 08:00:00

Решение задач на вектора. Часть третья. Перевернутая последовательность, подсчет данных по условию

Задача №1. Дан массив символов S1, S2, ..., S30. Получить символы данной последовательности в обратном порядке.

Решение:


  1. RANDOMIZE TIMER
  2. N = 30
  3. DIM S$(N), A$(N) 'OTVODIM MESTO V PAMYATI
  4. FOR I = 1 TO N 'ZADAYEM MASSIV
  5.     S$(I) = CHR$(INT(RND * 25 + 65)) 'IZ BOLSHIKH LATINSKIKH BUKV
  6.     PRINT S$(I); " "'PECHAT MASSIVA V ODNU STROKU
  7. NEXT
  8. PRINT 'OTMENA VYVODA V TEKUSHCHEY STROKE
  9. FOR I = 1 TO N 'ZADAYEM MASSIV A$
  10.     A$(I) = S$(31 - I) 'A$(1)=S$(30), A$(2)=S$(29)...
  11.     PRINT A$(I); " "'PECHAT MASSIVA V ODNU STROKU
  12. NEXT
  13. PRINT

Рисунок 1 – Исходный текст программы на перевернутую последовательность

Рисунок 1 – Исходный текст программы на перевернутую последовательность

Рисунок 2 – Выполнение программы на перевернутую последовательность

Рисунок 2 – Выполнение программы на перевернутую последовательность

Задача №2. В массиве слов найти слова, содержащие последним символом букву «O». Вывести на печать эти элементы и их номера, распечатать весь массив.

Примечание: Необходимо завести переменную, которая будет служить «сигнальной лампочкой», то есть будет показывать есть ли в массиве слова, кончающиеся на «O» или нет. В начале программы «лампочке» присваивается значение равное нулю. Если значение останется нулевым, то это значит, что таких слов нет.

Решение:


  1. DIM A$(10) 'OTVODIM MESTO V PAMYATI
  2. DATA OKNO,DOM,TRUBA,DEREVO,TSVETY,BREVNO
  3. DATA ZOLOTO,SON,POLE,DELO
  4. FOR I = 1 TO 10
  5.     READ A$(I) 'ZADAYEM MASSIV
  6.     PRINT A$(I); " "'PECHATAYEM MASSIV
  7. NEXT
  8. PRINT
  9. L = 0 '"SIGNALNAYA LAMPOCHKA"
  10. FOR I = 1 TO 10
  11.     C$ = MID$(A$(I), LEN(A$(I)), 1) 'KOPIRUYEM POSLEDNYUYU BUKVU I
  12.     IF C$ = "O" THEN PRINT A$(I), I, "ELEMENT"'SRAVNIVAYEM S "O"
  13.     L = L + 1 ' YESLI BUKVY SOVPADAYUT,
  14. NEXT ' LAMPOCHKA MENYAYET ZNACHENIYE
  15. IF L = 0 THEN PRINT "SLOV S POSLEDNEY BUKVOY 'O' V MASSIVE NET"

Рисунок 3 – Исходный текст программы на подсчет слов по условию

Рисунок 3 – Исходный текст программы на подсчет слов по условию

Рисунок 4 – Выполнение программы на подсчет слов по условию

Рисунок 4 – Выполнение программы на подсчет слов по условию

Задача №3. Список содержит фамилии 12 учеников и из возраст. Найти фамилии тех, кому больше 16 лет.

Решение:


  1. DIM N$(12), W(12)
  2. DATA IVANOV,PETROV,VASECHKIN,KRYLOVA
  3. DATA FEDINA,BOBKOVA,ZAYTSEV,KHRUSHCHEV,GRISHIN
  4. DATA SIDOROVA,BOBROV,MOKRUSHINA
  5. DATA 12,14,16,17,7,10,12,9,17,17,8,17
  6. FOR I = 1 TO 12
  7.     READ N$(I)
  8. NEXT
  9. FOR I = 1 TO 12
  10.     READ W(I)
  11. NEXT
  12. FOR I = 1 TO 12
  13.     PRINT N$(I); " ""-"; W(I)
  14. NEXT
  15. PRINT "STARSHE 16 LET:"
  16. FOR I = 1 TO 12
  17.     IF (W(I) > 16) THEN PRINT N$(I); " ";
  18. NEXT

Рисунок 5 – Исходный текст программы на поиск данных по условию

Рисунок 5 – Исходный текст программы на поиск данных по условию

Рисунок 6 – Выполнение программы на подсчет данных по условию

Рисунок 6 – Выполнение программы на подсчет данных по условию

В следующих статьях мы поговорим про решение задач при помощи матриц.

Спасибо за прочтение этой статьи.

 

Прикрепленные файлы:

 

< Предыдущая статья
Решение задач на вектора. Часть вторая. Поиск минимального, максимального значения, суммы и произведения элементов
Следующая статья >
Решение задач на матрицы. Часть первая

Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.