Массивы Разбор задачи С4
Массив - это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти. Количество элементов в массиве всегда конечно.
,6 7,3 5,0 1,3 Наташа Света Игорь Николай Типы данных
Массив – это последовательность однородных данных, обозначенных одним именем. Одно данное от другого отличается индексом. Индекс – это порядковый номер элемента в массиве.
Для описания массива используется оператор DIM. (от слова Dimension) DIM A(N) Имя оператораИмя массива размерность массива
Размещение массивов в памяти ЭВМ
Алгоритм создания массива 1.До обращения к элементам массива зарезервировать в памяти компьютера место оператором DIM. 2.С помощью цикла ввести элементы массива. 3.С помощью цикла вывести элементы массива.
Заполнение массива Непосредственный ввод значений применяется для заполнения небольших массивов. DIM A(3) А(1)=4 А(2)=-2.5 А(3)=10 DIM A(3) INPUT A(1),A(2),A(3) DIM A(3) DATA 23,1,4 READ А(1), А(2), А(3)
Ввод в цикле применяется для заполнения больших массивов DIM A(20) FOR I=1 ТО 20 INPUT A(I) NEXT I DIM A(1O) DATA 0, 2,1, 5, 8, 5, 6,26, 2,43 FOR N=1 TO 10 READ A(N) NEXT N
Вывод элементов массива DIM A(4) PRINT A(1), A(2), A(3), A(4) DIM A(10) FOR I=1 TO 10 PRINT A(I) NEXT I
Случайное число - это число, величина которого не может быть заранее известна. RND, которая возвращает случайное значение из интервала (0, 1).
Составим программу вывода первых 5 случайных чисел на экран FOR i = 1 TO 5 x = RND PRINT x NEXT i Если выполнить эту программу несколько раз, то мы с удивлением обнаружим, что на экран выдается одна и та же последовательность случайных чисел! Это происходит потому, что на самом деле каждое следующее случайное число получается из предыдущего по хитрой формуле, которая имитирует отсутствие закономерности в последовательности чисел. А поскольку первое число последовательности одно и то же, то повторяться будут и остальные числа. Чтобы получать разные последовательности RANDOMIZE TIMER
Заполните массив из 10 элементов случайными числами. Найдите сумму элементов массива. DIM А(10) FOR N=1 TO 10 A(N)=RND S=S+A(N) NEXT N PRINT Сумма =; S
Работа со строковыми переменными
Символьная константа - это строка символов, заключенная в кавычки. присвоение текстовой константы: A$="СТРОКА СИМВОЛОВ" У символьной переменной есть имя, которое заканчивается знаком $, и значение в виде строки символов. печать значений строковых переменных: PRINT A$, T$
LEN(F$) - выдает длину символьного выражения; ASC(S$) - выдает код первого символа строки; LEFT$( F$, N) - вырезает заданное количество символов (N) слева; RIGHT$ (F$, N) - вырезает заданное количество символов (N) справа; MID$ (A$, N, K) - вырезает из строки A$, начиная с позиции N, K символов.
1. Подсчитать, сколько раз среди символов заданной строки встречается буква "F". CLS INPUT "Vvedite stroku - "; S$ K = 0 FOR i = 1 TO LEN(S$) IF MID$(S$, i, 1) = "F" THEN K = K + 1 NEXT I PRINT "Bukva F vstretilas"; K; " raz(a) " END
2. Составить программу, которая печатает заданное слово наоборот. CLS INPUT "vvedite slovo - ";S$ FOR I=LEN(S$) TO 1 STEP -1 PRINT MID$(S$, I, 1); NEXT I END
WHILE NOT (C$ = " ") i = i + 1 C$ = MID$(s$, i, 1) WEND
Задача С4. На вход программы подаются сведения о сдаче экзаменов учениками 9-ых классов средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но и не превосходит 100, каждая из следующих строк имеет следующий формат:, где - строка, состоящая не более чем из 20 символов, - строка, состоящая не более чем из 15 символов, - через пробел три целых числа(по 5-ти балльной системе).
разделены одним пробелом. Пример входной строки: Смирнов Иван Требуется написать программу, которая будет выводить на экран фамилии и имена трех лучших по среднему баллу учеников.
NM(j) = MID$(s$, 1, I) SUM(j) = ASC(MID$(s$, i + 1, 1)) - ASC("0") SUM(j) = SUM(j) + (ASC(MID$(s$,i + 3, 1)) - ASC("0")) SUM(j) = SUM(j) + (ASC(MID$(s$, i + 5, 1)) - ASC("0")) NEXT j S1 = 0: S2 = 0: S3 = 0 FOR j = 1 TO N IF SUM(j) > S1 THEN S3 = S2: S2 = S1 S1 = SUM(j) ELSE IF SUM(j) > S2 THEN S3 = S2: S2 = SUM(j) ELSE IF SUM(j) > S3 THEN S3 = SUM(j) END IF NEXT j FOR J = 1 TO N IF SUM(j) >= S3 THEN PRINT NM(j) NEXT j END DIM SUM(100) AS INTEGER DIM NM(100) AS STRING INPUT "Vvedite chislo uchenikov"; N FOR j = 1 TO N INPUT s$ C$ = MID$(s$, 1, 1) i = 1 WHILE NOT (C$ = " ") i = i + 1 C$ = MID$(s$, i, 1) WEND i = i + 1 C$ = MID$(s$, i, 1) WHILE NOT (C$ = " ") i = i + 1 C$ = MID$(s$, i, 1) WEND