Опубликовано: 2018-10-07 08:00:00
Решение задач на вектора. Часть третья. Перевернутая последовательность, подсчет данных по условию
Задача №1. Дан массив символов S1, S2, ..., S30. Получить символы данной последовательности в обратном порядке.
Решение:
- RANDOMIZE TIMER
- N = 30
- DIM S$(N), A$(N) 'OTVODIM MESTO V PAMYATI
- FOR I = 1 TO N 'ZADAYEM MASSIV
- S$(I) = CHR$(INT(RND * 25 + 65)) 'IZ BOLSHIKH LATINSKIKH BUKV
- PRINT S$(I); " "; 'PECHAT MASSIVA V ODNU STROKU
- NEXT
- PRINT 'OTMENA VYVODA V TEKUSHCHEY STROKE
- FOR I = 1 TO N 'ZADAYEM MASSIV A$
- A$(I) = S$(31 - I) 'A$(1)=S$(30), A$(2)=S$(29)...
- PRINT A$(I); " "; 'PECHAT MASSIVA V ODNU STROKU
- NEXT
Рисунок 1 – Исходный текст программы на перевернутую последовательность
Рисунок 2 – Выполнение программы на перевернутую последовательность
Задача №2. В массиве слов найти слова, содержащие последним символом букву «O». Вывести на печать эти элементы и их номера, распечатать весь массив.
Примечание: Необходимо завести переменную, которая будет служить «сигнальной лампочкой», то есть будет показывать есть ли в массиве слова, кончающиеся на «O» или нет. В начале программы «лампочке» присваивается значение равное нулю. Если значение останется нулевым, то это значит, что таких слов нет.
Решение:
- DIM A$(10) 'OTVODIM MESTO V PAMYATI
- DATA OKNO,DOM,TRUBA,DEREVO,TSVETY,BREVNO
- DATA ZOLOTO,SON,POLE,DELO
- FOR I = 1 TO 10
- READ A$(I) 'ZADAYEM MASSIV
- PRINT A$(I); " "; 'PECHATAYEM MASSIV
- NEXT
- L = 0 '"SIGNALNAYA LAMPOCHKA"
- FOR I = 1 TO 10
- C$ = MID$(A$(I), LEN(A$(I)), 1) 'KOPIRUYEM POSLEDNYUYU BUKVU I
- IF C$ = "O" THEN PRINT A$(I), I, "ELEMENT": 'SRAVNIVAYEM S "O"
- L = L + 1 ' YESLI BUKVY SOVPADAYUT,
- NEXT ' LAMPOCHKA MENYAYET ZNACHENIYE
- IF L = 0 THEN PRINT "SLOV S POSLEDNEY BUKVOY 'O' V MASSIVE NET"
Рисунок 3 – Исходный текст программы на подсчет слов по условию
Рисунок 4 – Выполнение программы на подсчет слов по условию
Задача №3. Список содержит фамилии 12 учеников и из возраст. Найти фамилии тех, кому больше 16 лет.
Решение:
- DIM N$(12), W(12)
- DATA IVANOV,PETROV,VASECHKIN,KRYLOVA
- DATA FEDINA,BOBKOVA,ZAYTSEV,KHRUSHCHEV,GRISHIN
- DATA SIDOROVA,BOBROV,MOKRUSHINA
- DATA 12,14,16,17,7,10,12,9,17,17,8,17
- FOR I = 1 TO 12
- READ N$(I)
- NEXT
- FOR I = 1 TO 12
- READ W(I)
- NEXT
- FOR I = 1 TO 12
- PRINT N$(I); " "; "-"; W(I)
- NEXT
- PRINT "STARSHE 16 LET:"
- FOR I = 1 TO 12
- IF (W(I) > 16) THEN PRINT N$(I); " ";
- NEXT
Рисунок 5 – Исходный текст программы на поиск данных по условию
Рисунок 6 – Выполнение программы на подсчет данных по условию
В следующих статьях мы поговорим про решение задач при помощи матриц.
Спасибо за прочтение этой статьи.