Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Действия над элементами одномерного массиваСодержание книги
Поиск на нашем сайте
Пример 1. Подсчитать общую сумму 10 чисел, записанных статически в массив и количество отрицательных чисел в этом массиве.
DATA 3,4,5,-8,10.67,2.7,765,-6.98,9,-1 DIM A(10) FOR I=1 TO 10 READ A(I) S=S+A(I) IF A(I)<0 THEN N=N+1 NEXT I PRINT " сумма=";S,"N=";N END
Пример 2. Задан массив К(45). Определить минимальный элемент массива и его индекс.
DIM K(45) FOR I=1 TO 45 ' Заполнение массива INPUT K(I) NEXT I MIN=A(1) ' Переменной MIN присваивается первое значение массива FOR I=2 TO 45 IF A(I) < MIN THEN MIN=A(I):K=I NEXT I PRINT "Минимальный элемент=";MIN, "его индекс=";K END
Пример 3. Дан массив М(30). Элементы массива - произвольные числа. Выдать на экран значения каждого пятого элемента. Указанные элементы выдать в строку. DIM M(30) FOR I=1 TO 30 M(I)=INT(RND(1)*15) PRINT M(I); NEXT I FOR I=5 TO 30 STEP 5 PRINT M(I); ' Вывод каждого пятого элемента массива NEXT I
Пример 4. Сформировать из N элементов одномерный массив А и вывести его на печать в виде K столбцов. INPUT " Введите количество элементов массива ";N DIM A(N) FOR I=1 TO N A(I)=INT(RND(1)*10) NEXT I INPUT " Введите количество столбцов ";K FOR I=1 TO N PRINT A(I); IF I MOD K = 0 THEN PRINT NEXT I END
Пример 5. Составить программу вычисления и печати значений функции Y=(SIN X+1) COS 4X Значения аргумента заданы статически в массиве X(10). Значения функции записать в массив Y(10) и распечатать в пять строк. DATA 5,6.78,56,7.34,678,89,5,23.9,10,34.7 DIM X(10),Y(10) FOR J=1 TO 10 READ X(J) NEXT J FOR J=1 TO 10 Y(J)=(SIN(X(J))^2+1)*SQR(COS(4*X(J))^2) PRINT Y(J); IF J MOD 2 = 0 THEN PRINT NEXT J END Двумерные массивы
Основные понятия
Бейсик позволяет работать с массивами, имеющими до 255 измерений и содержащими до 32767 элементов по каждому из них. Однако следует хорошо подумать, стоит ли использовать эти возможности в полном объеме. Если вы сделаете свои массивы слишком большими, то будете долго вспоминать, как получить доступ к той или иной информации. В то же время иногда решение задачи возможно только при наличии многомерных массивов, или матриц. Наиболее часто применяются двумерные массивы, поскольку описывать информацию по ее позиции в одномерном списке весьма неудобно. Представьте себе, как трудно было бы найти свое место на стадионе, если бы на билете указывался лишь порядковый номер сиденья - один из многих тысяч! Билеты же, на которых проставлены и номер ряда, и номер места, существенно упрощают эту задачу. Составители географических карт тоже пользуются таким приемом. Координаты Парижа, Осло, Рима, обозначаются не как 1, 2 или 300, а в терминах градусов широты и долготы. Эти два числа указывают местоположение города относительно экватора и начального (Гринвичского) меридиана. В Бейсике предусмотрены средства, с помощью которых вы можете организовать информацию таким же образом. Составляя программу, представьте себе прямоугольную таблицу наподобие пчелиных сот, или матрицу, где будут храниться данные. Каждое значение можно "положить в ячейку" и "вынуть из нее", если указаны номер соответствующих строки и столбца.
Имя и размерность матрицы определяется оператором DIM A(3,4)
Этот оператор зарезервирует 12 ячеек: A(1,1), A(1,2), A(1,3), A(1,4) A(2,1), A(2,2), A(2,3), A(2,4) A(3,1), A(3,2), A(3,3), A(3,4)
Каждый элемент описывается двумя индексами: первый обозначает номер строки, а второй - номер столбца.
Когда матрица определена, переменными из этой области памяти можно пользоваться наравне с любыми другими.
Заполнение массива
Пример статического заполнения и печати двумерного массива. DATA Настя, Ульяна, Женя DATA Щербакова, Евланова, Клочко DIM A$(2,3) FOR I=1 TO 2 ' Заполнение массива FOR J=1 TO 3 READ A$(I,J) NEXT J,I FOR I=1 TO 2 FOR J=1 TO 3 ' Печать значений массива по строкам PRINT A$(I,J); NEXT J NEXT I
Пример динамического заполнения и печати двумерного массива. DIM A(5,4) FOR I=1 TO 5 ' Заполнение массива FOR J=1 TO 4 INPUT A(I,J) NEXT J,I FOR I=1 TO 5 ' Печать значений массива по строкам FOR J=1 TO 4 PRINT A(I,J); NEXT J NEXT I
Пример заполнения массива с помощью стандартной функции RND. DIM M(2,8) FOR I=1 TO 2 FOR J=1 TO 8 M(I,J)=INT(RND(1)*10) ' Заполнение массива случайными PRINT M(I,J); ' числами и печать значений массива NEXT J ' по строкам NEXT I Действия над элементами двумерного массива
Пример 1. Задана матрица U(7,3). Отрицательные элементы матрицы заменить на 0. Измененный массив вывести на экран. DIM U(7,3) FOR I=1 TO 7 ' Заполнение массива отрицательными и FOR J=1 TO 3 ' положительными числами U(I,J)=INT(RND*20-10) PRINT U(I,J); NEXT J NEXT I: PRINT FOR I=1 TO 7 FOR J=1 TO 3 IF U(I,J)<0 THEN U(I,J)=0 PRINT U(I,J); NEXT J NEXT I END
Пример 2. Найти сумму положительных элементов четных строк матрицы C(5,3). DIM С(5,3) FOR I=1 TO 5 FOR J=1 TO 3 С(I,J)=INT(RND(1)*20) PRINT С(I,J); NEXT J NEXT I: PRINT S=0 FOR I=2 TO 5 STEP 2 FOR J=1 TO 3 S=S+C(I,J) NEXT J NEXT I END
Пример 3. Дана матрица U(7,3). Получить массив Q(7), элементами которого являются количество отрицательных элементов соответствующих строк матрицы U(7,3).
DIM U(7,3),Q(7) FOR I=1 TO 7 ' Заполнение массива отрицательными и FOR J=1 TO 3 ' положительными числами U(I,J)=INT(RND(1)*20-10) PRINT U(I,J); NEXT J NEXT I: PRINT FOR I=1 TO 7 K=0 FOR J=1 TO 3 IF U(I,J)<0 THEN K=K+1 NEXT J Q(I)=K: PRINT Q(I); NEXT I END
Подпрограммы
Подпрограммой называется участок программы, оформленный определенным образом, к которому можно обращаться из разных точек программы любое число раз. При этом подпрограмма может решать каждый раз одну и ту же задачу с разными значениями исходных данных. Использование подпрограмм позволяет существенно уменьшить объем рабочей программы. Деление программы на подпрограммы делает программу более понятной. Обращение к подпрограмме осуществляется с помощью команды
GOSUB номер строки или метка По этой команде управление передается подпрограмме - блоку команд, первая из которых помечена номером строки или меткой. Последней выполняемой командой подпрограммы является RETURN. По этой команде управление передается в основную программу на оператор, стоящий за оператором GOSUB. Если нарушено согласование операторов RETURN и GOSUB, то выводится сообщение об ошибке “RETURN without GOSUB”.
Подпрограммы располагаются в конце основной программы и отделяются от основной программы оператором END. Пример 1. Написать подпрограмму вывода подчеркивания информации. Длина черты переменная. N=5 GOSUB A ‘вызов подпрограммы для вывода знака подчеркивания 5 раз N=30 GOSUB A ‘вызов подпрограммы для вывода знака подчеркивания 30 раз END A: FOR I=1 TO N ‘подпрограмма вывода знака подчеркивания PRINT ”_“; NEXT I RETURN ‘оператор возврата в основную программу
Пример 2. Вычислить функцию: C = m!n!/(m-n)! 1 INPUT “Введите m>n”;m,n IF M<=N THEN 1 ‘проверка входных данных R=M GOSUB A ‘вызов подпрограммы для вычисления m! R1=F: R=N GOSUB A ‘вызов подпрограммы для вычисления n! R2=F: R=M-N GOSUB A ‘вызов подпрограммы для вычисления (m-n)! C=(R1+R2)/F: PRINT “C=”;C END A: F=1 ‘подпрограмма вычисления факториала FOR I=2 TO R F=F*I NEXT I RETURN ‘оператор возврата в основную программу
Для самостоятельного решения Составить программу расчета заработной платы по формуле: оклад * количество дней * 1.4-подоходный налог. Расчет заработной платы оформить в подпрограмме.
Работа со строковыми типами данных
Оператор LINE INPUT
Оператор LINE INPUT позволяет ввести с клавиатуры строку длиной до 255 символов Формат: LINE INPUT “ комментарии”,T$ T$ - строковая переменная. Выполнение команды LINE INPUT проводится аналогично команде INPUT с той лишь разницей, что: · Вводится обязательно строковое и только одно значение; · За поясняющим сообщением нет знака вопроса; · Среди вводимых символов могут быть и запятая, и кавычки. Например: LINE INPUT”введите фамилии”,T$ <набираем: Иванов, Петров, Николаев > после этого T$ будет содержать: Иванов, Петров, Николаев Операции со строковыми данными
Со строковыми данными возможна одна операция конкатенация – объединение двух строковых последовательностей в одну. Формат: A$ + B$
Например: A$=”Графический” D$=” редактор” T$=A$+B$ PRINT T$ <На экране появится: Графический редактор>
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 262; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.108.224 (0.009 с.) |