59
I.
1. Введение. Цели изадачи курса.
В наше время информационного бума успех сопутствует тому, кто владеет информацией. Фундамент информатизации закладывается в сфере образования. Вопросы компьютерной общеобразовательной подготовки вплотную подходят к проблеме освоения новых видов информации и обмена ею, новых технологий и форм общения. Способность человека управлять процессом зависит от его информированности. От этого зависит перестройка системы управления, новые экономические пути решения тех или иных проблем. Качество информационной оснащённости, наличие быстродействующих и общедоступных каналов движения информации сегодня определяют уровень развития стран. Внедрение и использование информационных технологий - материал необходимый всем без исключения пользователям для практической работы, - способствует решению задач интенсификации и индивидуализации обучения, формированию познавательских способностей, улучшению организации учебного процесса. Алгоритмический стиль мышления –одна из важных форм умственной деятельности, - даёт методы построения математической модели реального объекта , позволяет автоматизировать обработку информационного потока. Разработка алгоритмов предшествует их реализации на компьютере, что активизирует познавательные возможности школьника, развивает теоретическое мышление (прикладное изучение численных методов: числовые ряды, законы чисел, - например, чисел Фибоначчи) в изучении реальных закономерностей. Занимательные алгоритмы, алгоритмы, известные с древних времён (Евклида, Горнера, Эратосфена ) вполне доступные ученику, способствуют умению создавать эффективные алгоритмы. Реализация алгоритма на машинном языке научит создавать жизнеспособные и надёжные, предусматривающие обработку меняющихся исходных данных, эффективные программы. Т.о. ведётся подготовка будущих пользователей для работы с системами и подготовка будущих программистов.
2. Алгоритмизация.
Определение, способы написания, этапы решения, свойства.
Алгоритм есть система предписаний, предназначений исполнителю для решения некоторой задачи.
Три способа написания:
1)на естественном языке;
2)на языке схем алгоритмов;
3)на алгоритмическом языке программирования.
Этапы решения задач на ЭВМ:
1.Постановка задачи. Условие должно быть корректным.
2.Составление математической модели задачи. Отбрасываем несущественные стороны явления, подбираем объекты и математические формулы.
3.Составление алгоритма решения задачи.
4.Решение задачи и проверка результатов.
Свойства алгоритма:
1. Результативность.
2. Дискретность.
3. Конкретность.
4. Однозначность.
5. Массовость.
Требования к программе:
1. Максимально понятный интерфейс (диалог).
2. Защита от неопытного пользователя.
Под обработкой информации понимают преобразование информации, проведение различных операций над ней:
Дано (исходные данные).
Получить (результаты).
Как связаны исходные данные и результаты ( формулы и преобразования информации).
Могут присутствовать промежуточные данные .
Т.е. задача должна быть чётко сформулирована, значит:
Высказаны те предположения, как в море информации об изучаемом явлении или объекте извлечь исходные данные; что будет результатом;
Всё это называют моделью задачи: предположения, исходные данные, результаты, связи между ними. Если исходные данные и результаты представить числами, а соотношения и связи математическими формулами, то можно говорить о создании математической модели.
Умение программировать определяет некоторые элементы общей культуры (теоретическая база):
Определит общие принципы решения задачи.
Детализировать эти общие принципы (разработать пошаговый алгоритм).
Построить математическую модель.
Знание языков программирования.
Умение работать с ЭВМ и готовыми программными средствами (умение предугадать алгоритм, работать с системами управления и обработки информации-СУБД).
3. Элементы блок-схемы.
Начало б\сх ;
Конец б\сх ;
блок ввода (-вывода) ;
рабочий блок (оператор присваивания; арифметическое выражение) ;
описания ;
_ +
логический блок ;
переходы между блоками .
Примерами могут быть:
_
+
-
-
+
Серия 2
4. ЭЛЕМЕНТЫ ЯЗЫКА BASIC.
Константы (тип) :
- 1.целые (746; 577)%;
- 2.веществ.(5.171; 731.1371)!;
- 3.символы (“текст”).
Переменные (тип):
Массивы (тип):
1.целый DIM F%(N)-например: успеваемость учеников;
2.веществ DIM F!(N)-з/плата;
3.симв. DIM F(N)-список учеников класса.
Описание типа:
Неявное-
DEFINT A,C-F,N-R
DEFSNG B,S-W, Z
DEFSTR F
Явное
DEFINT A,KAT
DEFSNG E,GAME
DEFSTR MI,L ,RES
Операторы ввода-вывода :
INPUT “Введите фамилию”; Fam$
PRINT X^2+1; Z-1
PRINT “Его фамилия”; Fam$
Арифметические операции:
Встроенные функции:
1 , если x
sgn(x) = 0 , если x=0
-1 , если x0
INT(-4;01)=-5
INT(23;56)=23
FIX(-4;01)=-4
FIX(23;56)=23
SELECT CASE N (переменная)
CASE IS… условие (логическое выражение, сравнение)
Операторы
CASE … TO …
Операторы
CASE … TO …(границы)
Операторы
CASE O (значение)
Операторы
END SELECT
Счетчик цикла
FOR I=1 TO N [STEP N]
………………….. Шаг
(тело цикла)
…………………….
NEXT
5. Линейный алгоритм.
Вычислить значение функции.
5.1. Y=sin|x|+tgx
ИЛИ
INPUT “Введите Х”;X INPUT “Введите Х”;X
M=ABS(X) Y=SIN(ABS(X))+TAN(ABS(X))
Y=SIN(M)+TAN(M) PRINT “Вывод Y”;Y
PRINT “Вывод Y”;Y
5.2. Y=SIN|X|*COS²(X-18)
INPUT “Введите Х”;X
Y=SIN(ABS(X)*(COS(X-18))^2
PRINT “Вывод Y”;Y
5.3. Напишите программу, в которой присвоить значение 2-м числовым переменным и вывести на экран их сумму, разность, произведение, частное.
Пусть X,Y-две переменные.
Создадим еще четыре, в которых :
А-+
В- -
С-*
Д-\
Программа примет вид :
INPUT “Введите Х”;X
INPUT “Введите Y”;Y
A=X+Y
B=X-Y
C=X*Y
D=X/Y
PRINT “Искомые результаты”;a;b;c;d
5.4. В магазине продается костюмная ткань. Ее цена 2100 руб. за 1м². Напишите программу, которая подсчитывает и выводит на экран стоимость куска этой ткани длиной 6,5 метров и шириной 80 сантиметров.
X-стоимость 1м².
Y-стоимость погонного метра.
Z-общая стоимость покупки.
Х=2100 руб.
Y=X /100*80
Z=Y*6,5
X=2100
Y=X/100*80
Z=Y*6.5
PRINT “Вывод Z”;Z
5.5. Напишите программу нахождения среднего арифметического 4-х чисел.
Пусть х1,х2,х3,х4,-четыре числа. Sr-среднее арифметическое.
INPUT “Введите значения”;X1,X2,X3,X4
Sr=(X1+X2+X3+X4)/4
PRINT “Результат”; Sr
5.6. Задумайте число от 1 до 100. Напишите операторы , которые будут последовательно выполнять следующие действия:
-присвоить числовой переменной значение, равное произведению этого числа самого на
себя;
-сложить эту переменную с удвоенным задуманным числом;
-разделить сумму на задуманное число;
-уменьшить результат на задуманное число;
-вывести ответ.
X-Задуманное число.
Y-
Z- Промежуточные
Q- переменные
W-Результат
INPUT “Введите Х”;X
Y=X^2
Z=Y+2*X
Q=Z/X
W=Q-X
PRINT “Результат=”;W
5.7. Вычислить множество значений функции.
Y=X^ 2+B, где Х10,10 с шагом 2; В -параметр.
INPUT “Введите значение параметра”; B
FOR X=-10 TO 10 STEP 2
Y=X^2+B
PRINT Y;
NEXT
PRINT
*Задание. Составить схему и написать программу нахождения суммы дробей A/B и C/D.
6. Разветвляющийся алгоритм. 6.1 Нахождение корней квадратного уравнения.
6.1.1. Пошаговое описание :
шаг 1. Ввод А,В,С
шаг 2. D=B²-4*A*C
шаг 3. D
шаг 4. Если
шаг 5. Если =0, то два корня :
х1=(-В-D)/( 2*А)
x2=(-B+D)/( 2*А)
шаг 6. Вывод результата.
6.1.2. Блок-схема :
+
_
6.1.3. Программа:
INPUT “”;A,B,C
D=B^2-4*A*C
IF D=0 THEN X1=(-B-D)/(2*A):X2=(-B+D)/(2*A):PRINT “Два корня ”;X1;X2
IF DКорней нет. ”
6.2.Составить программу вычисления минимального среди A, B, C, если A=SIN(X), B=COS(X), C=Ln(X). Проверить для X=5.
INPUT “Введите значение Х”;X
PRINT “Для заданного значения Х минимальным значением Y будет ”;
A=SIN(X):B=COS(X):C=LOG(X)
IF A
6.3. Решение системы уравнений :
X*Y ; если X²+Y²=1
2X+Y
2X-Y ; если X²+Y²0
Z=
X+Y
X-Y ; если X²+Y²
INPUT “Введите Х”;X
I
+
NPUT “Введите Y”;Y
IF (X^2+Y^2)=1 THEN Z=X*Y
IF (X^2+Y^2)0 THEN Z=(2*X+Y)/(2*X-Y)
IF (X^2+Y^2)
PRINT “Результат”; Z
*Задание. Нарисовать блок-схему и написать программу вычисления значений для следующих систем :
1. 2. Функция Дирихле 3.
X+Y, если Х=2 и Y2+X, если Х-2 sin(X+Y), если X2+Y2
X-Y, если Х
Z= X*Y, если Х=2 и Y=5 X2-1/X, если Х2+Y21
X/Y, если Х=5
7. Блок-схема команды повторения.
Циклический алгоритм - алгоритм, в котором имеется возврат к предыдущим шагам программы. For … to .. [step …]
…
…
Next
7.1
Input “N”;N
For i=1 to N
S=s+i
Next
Print “S=”;S
7
Счетчик цикла
Определяет сколько раз будет вычисляться тело цикла
Может:
принимать как положительные значения, так и отрицательные;
быть как целого типа, так и вещественного типа;
как увеличиваться, так и уменьшаться.
.2
Счетчик цикла должен пробегать все значения от нижней границы до верхней с определенным шагом.
Верхняя и нижняя граница могут:
принимать как положительные значения, так и отрицательные;
быть как целого типа, так и вещественного типа;
7.2.1
К=0.7
N=17.5
For i=К to N step 0.4
S=S+i
Next
Print “ Сумма искомых величин S=”;S
7.2.2
К=-0.5
N=-14.5
For i=К to N step -0.2
S=S+i
Next
Print “ Сумма искомых величин S=”;S
7.2.3
К=-0.4
N=12.02
For i=К to N step 0.3
S=S+i
Next
Print “ Сумма искомых величин S=”;S
7.2.4
К=-1.7
N=20.5
For i=К to N step 0.4
S=S+i
Next
Print “ Сумма искомых величин S=”;S
7.2.5
Неправильно, такой цикл не сработает ни разу:
К=-1.7
N=20.5
For i=К to N step –0.6
S=S+i
Next
Print “ Сумма искомых величин S=”;S
7.3. Написать программу, которая вычислит и выведет сумму всех целых чисел от 1 до 200, которые делятся без остатка на 8.
+
-
INPUT “Введите число N”;N
FOR I=1 TO N
IF I/8=INT(I/8) THEN S=S+I
NEXT
PRINT “Искомый результат”; S
7.4. Написать программу, которая вычислит и выведет все 2- и 3- значные числа, которые делятся без остатка на 15.
FOR I=10 TO 999
IF I/15=INT(I/15) THEN PRINT “Искомый результат”; I
NEXT
8. Натуральный ряд чисел.
8.1.Написать программу, которая вычислит и выведет сумму всех трехзначных чисел.
-
+
I=100
S=S+I
I=I+1
+
FOR I=100 TO 999
S=S+I
NEXT
PRINT “Искомый результат”; S
8.2.Найти среднее арифметическое натурального ряда чисел от 1 до 200.
+
FOR I=100 TO 999
S=S+I
NEXT
PRINT “Искомый результат”; S
8.3.Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен S=1+22+. . .+N2.
INPUT “Введите число N”;N
S=0
FOR I=1 TO N
S=S+I^2
NEXT
PRINT “Искомый результат”; S
8.4. Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен S=1+22+. . .+1/N2.
INPUT “Введите число N”; N
S=0
FOR I=1 TO N
S=S+1/I^2
NEXT
PRINT “Искомый результат”; S
8.5.Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен S=1+22+. . .+1/2N.
INPUT “Введите число N”;N
S=0
FOR I=1 TO N
S=S+1/2^n
NEXT
PRINT “Искомый результат”; S
8.6.Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен S=1+22+. . . +(1/N)*(-1)^N+1 .
INPUT “Введите число N”;N
S=0
FOR I=1 TO N
S=S+(1/N)*(-1)^N+1
NEXT
PRINT “Искомый результат”; S
8.7.Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен S=(100*1)/(12+1)+(100*2)/(22+1)+(100*3)/(32+1)+. . . +(100*N)/(N2+1) .
+
-
INPUT “Введите число N”;N
S=0
FOR I=1 TO N
S=S+(100*I)/(I^2+1)
NEXT
PRINT “Искомый результат”; S
8.8.Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен
2+… 2+…. 2
INPUT “Введите число N”; N
S=0
K=1
I=2^(1/2)
FOR K=1 TO N
I=(2+I)^(1/2)
S=S+I
NEXT
PRINT “Искомый результат”; S
8.9. Написать программу, которая вычислит и выведет сумму элементов натурального ряда чисел, где каждый элемент представлен
.. .. .. 5
INPUT “Введите число N”;N
S=0
K=1
I=5
FOR K=1 TO N
I=(5)^(1/2)
S=S+I
NEXT
PRINT “Искомый результат”; S
*Задания. Работа с натуральными числами.
Найдите сумму всех чисел от 51 до 99. Равна ли она 3676.
Напишите программу суммирования всех одно и двухзначных чисел, которые делятся на 5.
Найти сумму всех трехзначных нечетных чисел.
Найти произведение всех трехзначных четных чисел.
5. Найдите произведение всех четных чисел от -100 до 1000.
6. Найти сумму всех трехзначных нечетных чисел.
7. Найти сумму удвоенных N первых членов натурального ряда.
8. Найти среднее арифметическое натурального ряда чисел до200.
9. Дана последовательность натуральных чисел (упорядоченная 1,2,3...N). Найти сумму квадратов элементов последовательности. И найти сколько чисел 10
10. Дана последовательность натуральных чисел. Найти сумму квадратов элементов последовательности. Найти количество чисел, кратных 17.
11. Найти среднее арифметическое всех трехзначных чисел.
12. Найти сумму удвоенных N первых членов натурального ряда.
13. Найти сумму всех трехзначных нечетных чисел.
14. Найдите произведение всех четных чисел от –100 до 100.
15. Найти произведение всех трехзначных четных чисел.
16. Найти сумму всех трехзначных нечетных чисел.
17. Найти сумму всех нечетных чисел от –100 до 100.
18. Найти среднее арифметическое натурального ряда чисел до 1000.
19.Напишите программу, формирующую таблицу умножения.
20. Дана формула нахождения элементов числового ряда. Найти каждый элемент и произведение элементов этого ряда:
1/N!
1/(n^2+4)
1+5 N - 1-5 N
2
5
N!
(N+1)/N!
ex=1+x+x2/2!+x3/3!+x4/4!+. . .+xn/n!
q n, где q=(21/2)/3
(2*k+1)/(4*k3-3)
1/n3
k2/(k2+1)
k(k+1)2
M!/((N!(M-N)!)
N* N*. .* N
. . .. N
9. Одномерный массив. Описание, создание.
Если элементы последовательности упорядочены (т. е. между элементами последовательности есть какая-то связь, закономерность), то можно обозначить переменной 1-ый элемент последовательности, а остальные задать формулой ,отражающей закономерность и к N-му элементу обращаться по формуле.
Если элементы последовательности набраны хаотично, невзаимосвязано(случайно, например: t воздуха за какой-то период, или отметки по успеваемости, или урожайность в различных колхозах и т.д.),то элемент последовательности нужно обозначить через переменную с индексом (AN),(где I=1,до определенного, заданного N), и адресоваться через имя А с индексом I. Тогда можно (т. к. закономерности между элементами нет, но есть закономерность между индексами, т.е. введя индексацию мы вводим свою закономерность между элементами последовательности) последовательно обращаться к элементам массива или к любому N-му элементу сразу. Массив-это организованный набор однотипных переменных, имеющих в памяти строго определенное место.
A(I)-элемент массива, где А - имя массива, I - индекс (порядковый номер).
9.1. В доме N комнат. Каждая имеет форму прямоугольника. Длина и ширина каждой указаны. Нарисовать блок-схему нахождения площади S каждой комнаты и общую S всех комнат в этом доме.
INPUT “Введите кол-во комнат”; N
FOR I=1 TO N
INPUT “Введите длину комнаты”; D(I)
INPUT “Введите ширину комнаты”; Sh(I)
S(I)=D(I)*Sh(I)
PRINT S(I);
NEXT
PRINT
9.2. Создать массив генератором случайных чисел.
INPUT “Введите количество элементов массива”; N
FOR I=1 TO N
COLOR I
A(I)=INT(RND(1)*10)
PRINT A(I);
NEXT
PRINT
9.3. Создать массив по формуле числового ряда ½n. Найти сумму элементов.
INPUT “Введите число N”;N
S=0
DIM A(N)
FOR I=0 TO N
COLOR I
A(I)=1/2^I
S=S+A(I)
PRINT A(I);
NEXT
PRINT
PRINT “Сумма элементов массива”; S
9.4. Создать массив по формуле числового ряда1/ N!. Найти сумму элементов.
INPUT “Введите число N”;N
S=0
DIM A(N)
A(0)=1
FOR I=1 TO N
COLOR I
A(I)=A(I-1)*(1/I)
S=S+A(I)
PRINT A(I);
NEXT
PRINT
PRINT “Сумма элементов массива”; S
9.5. Создать массив по формуле числового ряда 1/(N^2+4). Найти сумму элементов.
INPUT “Введите число N”; N
S=0
DIM A(N)
FOR I=0 TO N
COLOR I
A(I)=1/(N^2+4)
S=S+A(I)
PRINT A(I);
NEXT
PRINT
PRINT “Сумма элементов массива”; S
9.6. Написать программу, которая вычислит и выведет каждый элементов массива и сумму, где каждый элемент представлен
.. .. .. 5
+
INPUT “Введите число N”;N
S=0
DIM A(N)
A(0)=5
FOR I=1 TO N
COLOR I
A(I)=A(I-1)^(1/2)
S=S+A(I)
PRINT A(I);
NEXT
PRINT
PRINT “Сумма элементов массива”; S
9.7. Написать программу, которая вычислит элементы массива и сумму, где каждый элемент представлен
2+… 2+… 2
INPUT “Введите число N”;N
S=0
DIM A(N)
A(0)=0
FOR I=1 TO N
COLOR I
A(I)=(2+A(I-1))^(1/2)
S=S+A(I)
PRINT A(I);
NEXT
PRINT
PRINT “Сумма элементов массива”; S
*Задание. Сформировать массив по формуле до N-го элемента, найти сумму и произведение элементов массива:
Х(k)=(2k+1)/(4k3-3)
Х(n)=qn где q= 4/3
1+1/2+1/3+…1/n
(1+1/28+1/38+…+1/n8)
1+1/22+1/32+…+1/n2
X(k)=k2/(k2+1)
X(n)=(100n)/(n2+1)
S=(1+1/2+1/4+…+1/2n) где ряд представлен формулой 1/2n
A(k)=k(k+1)2
A(n)=(1+/2)n-(1-/2)n
X(n)=(3n+4)/(n+1)
X(n)=1/(n3+0.8)
N!=1*2*3*…n. N-ый член представлен формулой. Т.е.
1!=1
2!=1*2
3!=1*2*3
4!=1*2*3*4
(1+1/1!+1/2!+…+1/n!) где ряд представлен формулой 1/n!
Cnm=m!/n!(m-n)!
Ex=1+x+x2/2!+x3/3!+x4/4!+…xn/n!
Создать массив A(N), где каждый элемент получается арифметической прогрессией, при чем A(1)=2, а шаг прогрессии равен 3.
10.Выборка и преобразование элементов одномерного массива.
10.1. Каждый третий элемент массива заменить нулем.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
FOR I=1 TO P STEP 3
T(I)=0
NEXT
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.2. Найти сумму положительных элементов массива T(P).
INPUT “Введите количество элементов массива ”;P
S=0
DIM T(P)
FOR I=1 TO P
INPUT “Введите элемент массива ”;T(I)
NEXT
FOR I=1 TO P
IF T(I)0 THEN S=S+T(I)
NEXT
PRINT “Искомый результат ”; S
10.3. Элементы с 3 по 9 возвести в квадрат.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
FOR I=3 TO 9
T(I)=T(I)^2
NEXT
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.4. Из каждого второго извлечь корень.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
FOR I=1 TO P STEP 2
T(I)=T(I)^(1/2)
NEXT
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.5. Значение элементов, имеющих четные индексы, разделить на последний элемент.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
FOR I=1 TO P STEP2
T(I)=T(I)/T(P)
NEXT
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.6. Нечетные элементы разделить на значение второго элемента.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
FOR I=1 TO P
IF T(I)=INT(T(I) THEN T(I)=T(I)/T(2)
NEXT
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.7. Нечетным элементам присвоить значения квадратов индексов.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
FOR I=1 TO P
IF T(I)=INT(T(I) THEN T(I)=I^2
NEXT
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.8. Первый и последний элемент массива поменять местами.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
Z=T(1)
T(1)=T(P)
T(P)=Z
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.9. Выполнить циклический сдвиг элементов массива.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
Z=T(1)
FOR I=1 TO P-1
T(I)=T(I+1)
NEXT
T(P)=Z
FOR I=1 TO P
COLOR I
PRINT T(I);
NEXT
PRINT
10.10. Найти среднее арифметическое элементов массива.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
PRINT
FOR I=1 TO P
S=S+T(I)
NEXT
S=S/P
PRINT “Искомое значение”; S
10.11. Нахождение минимального (максимального) элемента массива.
INPUT “Введите количество элементов массива ”;P
DIM T(P)
FOR I=1 TO P
T(I)=INT(RND(1)*10)
PRINT T(I);
NEXT
MIN=T(1)
FOR I=2 TO P
IF MINT(I) THEN MIN=T(I)
NEXT
PRINT “Минимальный элемент ”;MIN
*Задания на преобразование одномерного массива:
Четные элементы разделить на значение индекса.
Измерена t воздуха в течение месяца :
Найти среднее арифметическое t воздуха.
Количество дней, когда t была 0.(
Найти max, min.
Нечетным элементам присвоить значения квадратов их индексов.
Сожмите массив, выбросив каждый второй его элемент ( дополнительные массивы использовать не разрешается).
Выполнить циклический сдвиг элементов влево.
Построить алгоритм (и написать программу) подсчета количества элементов массива больших среднего арифметического всех элементов этого массива.
Дан массив. Найти наибольшее и наименьшее и вычислить их разность.
Дан одномерный массив. Все его элементы, не равные нулю, переписать (сохраняя их порядок) в начало массива, а нулевые элементы- в конец массива (новый массив не заводить).
Задан массив С, содержащий M чисел. Сформировать два массива А и В, включая в массив А четные (по номеру ) элементы массива С в порядке их следования, а в массив В нечетные.
Найти средние арифметическое каждого третьего элементы.
Подсчитать количество четных и нечетных элементов массива.
В предложенном одномерном массиве замените все нулевые элементы.
Значения элементов, имеющих нечетные индексы, умножить на второй элемент.
В массиве Т(к) найти сумму всех чисел 2 и подсчитать количество ”0”.
В массиве А(N) найти сумму отрицательных элементов.
Массив создать генератором случайных чисел у каждого второго элемента, изменить знак на противоположный.
В массиве D(M) заменить нулями элементы, имеющие нечетные индексы.
Заменить в массиве A(N) четные элементы на «0».
В массиве T(N) заменить все четные элементы на «0», т. е. Например: если T(I)=(3,6,9,12,15), получить T(I)=(3,0,9,0,15).
В одномерном массиве найти те элементы, которые совпадают с индексами и вывести сообщение о наличии (и количестве) таковых.
Заполнение нулями всех элементов массива.
Каждый третий элемент массива заменить “0” Дан массив К каждому третьему элементу прибавить значение его индекса
Найти произведение массива
В массиве A(N) найти произведение отрицательных чисел
Нечетные элементы разделить второго элемента.
Значения элементов, имеющих четные индексы, разделить на последний элемент.
Элементы с четными и нечетными номерами (индексами) поменять местами.
Найти сумму положительных элементов заданного массива Т, содержащего Р чисел.
Элементы массива с 3-го по 9-ый возвести в квадрат.
Дан массив Д(К).Заменить нулями элементы, имеющие четные индексы.
Дан массив C(Q).Каждый третий элемент разделить на значение второго элемента.
Найти среднее арифметическое элементов массива А(N).
Элементы с 5-го по 10 заменить обратными величинами.
Нахождение минимального элемента массива.
Нахождение максимального элемента массива.
Найти среднее арифметическое четных и среднее арифметическое нечетных элементов массива.
Дана последовательность натуральных чисел. Подсчитать сколько элементов 7.
Все элементы
Обмен:1 и последний элементы массива поменять местами.
Дан массив. Нечетные элементы заменить их обратными величинами.
Написать программу нахождения количества чисел в массиве больших среднего арифметического этой последовательности.
В одномерном массиве сосчитать количество 3 и 7 и вывести на экран сообщение о том, каких цифр и на сколько больше.
Нечетные элементы умножить на последний элемент.
Найдите сумму всех нечетных чисел от –100 до 100.
Подсчитать количество элементов в массиве 3 и сумму элементов 5.
Дан массив. Первые пять элементов возвести в квадрат.
В массиве В(х) подсчитать количество “5” и “3”.
Дан массив. Элементы с 4-го по 8-й разделить на их индекс.
Элементы с 7-го по 13 заменить противоположными значениями.
Информация о количестве осадков, выпавших в течение месяца и о температуре воздуха задана в виде массивов. Определить, какое количество осадков выпало в виде дождя, какое в виде снега. Считать, что идет дождь, если температура воздуха 0.
11. Слияние и разбиение одномерного массива
11.1. Перестановка элементов внутри массива :
Элементы с четными и нечетными номерами поменять местами.
INPUT “ВВЕДИТЕ КОЛ-ВО ЭЛЕМЕНТОВ МАССИВА (четное)”;N
DIM A(N)
FOR I=1 TO N
A(I)=INT(RND(1)*10)
NEXT
FOR I=1 TO N STEP2
C=A(I)
A(I)=A(I+1)
A(I+1)=C
NEXT
FOR I=1 TO N
PRINT A(I);
COLOR I
NEXT
PRINT
11.2. Слияние двух массивов.
11.2.1. Заданы два массива А и В, содержащие по G чисел. Сформировать массив С, включая в него сначала все элементы массива А, затем все элементы массива В.
INPUT “Введите кол-во элементов массива”; G
DIM A(g),S(g),C(2*g)
FOR I=1 TO g
INPUT “Введите элемент массива А”;A(I)
NEXT
FOR I=1 TO G
INPUT “Введите элемент массива B”;B(I)
NEXT
FOR I=1 TO G
C(I)=A(I)
NEXT
FOR I=1 TO G
C(G+I)=B(I)
NEXT
FOR I=1 TO 2*G
PRINT C(I);
COLOR I
NEXT
PRINT
11.2.2. Сформировать массив C, включая в него попеременно элементы массивов A и B, содержащих по N чисел.
+
INPUT “Введите кол-во элементов массива”; N
DIM A(N),S(N),C(2*N)
FOR I=1 TO N
COLOR 5
A(I)=INT(RND(1)*10)
PRINT A(I);
NEXT
PRINT
COLOR 6
FOR I=1 TO N
B(I)= INT(RND(1)*10)
PRINT B(I);
NEXT
PRINT
FOR I=1 TO N
C(I*2-1)=A(I)
C(I*2)=B(I)
NEXT
FOR I=1 TO 2*N
PRINT C(I);
COLOR I
NEXT
11.3. Разбиение массива
11.3.1. Масcив С разделить на два массива А и B.
INPUT “Введите кол-во элементов массива С (четное)”;N
DIM C(N)
COLOR 2
FOR I =1 TON
C(I)=INT(RND(1)*10)
PRINT C(I);
NEXT
PRINT
DIM A (N/2), B (N/2)
FOR I=1 TO N/2
A (I)=C (I)
B (I)= C(N/2+I)
NEXT
COLOR 3
FOR I =1 TO N/2
PRINT A(I);
NEXT
PRINT
COLOR 4
FOR I =1 TO N/2
PRINT B(I);
NEXT
PRINT
*Задания на слияние и разбиение одномерного массива.
Из двух упорядоченных массивов A(K) и B(L) сформируйте массив C(K+L), упорядоченный так же, как исходные.
Для заданного массива A(M) сформируйте массив B(M/2) по формуле B(I)=(A(I)+A(M+1-I))/2
Задан массив С, содержащий М чисел. Сформировать два массива А и В, включая в массив А четные (по номеру) элементы массива С в порядке их следования, а в массив В нечетные.
Из двух упорядоченных массивов A(N), B(M) сформировать один, упорядоченный в обратную сторону.
12. Двумерный массив.
12.1. Понятие двумерного массива
12.1.1. Повторение.
Одновременный массив.
Что такое массив. Как описывается массив?
Как обозначается элемент массива?
Как формируется одномерный массив? В цикле I=1,N
Программа создания массива.
Вывод одномерного массива.
12.1.2. Определение
Двумерный массив.
Как описывается? DIM A(N,M)
Как обозначается элемент массива? A(I,J)
Как изменяются индексы? I=1,N; J=1,N
Как формируется двумерный массив? Два цикла (вложенный):
FOR I=1 TO N
FOR J=1 TO N
. . . . . . . . . . . . . .
NEXT
NEXT
Цикл, открывающийся первым, закрывается последним. Для каждого значения счетчика внешнего цикла перебираются все значения счетчика внутреннего цикла.
FOR I=1 TO N
FOR J=1 TO N
COLOR J
A(I,J)=INT(RND(1)*10)
PRINT A(I,J);
NEXT
PRINT
NEXT
АРИФМЕТИЧЕСКИЙ КВАДРАТ
INPUT N a(i,J)=a(i-1,J)+a(i,j-1)
J=0
1 | 1 | 1 | 1 | 1 | 1 |
1 | 2 | 3 | 4 | 5 | |
1 | 3 | 6 | 10 | 15 | |
1 | 4 | 10 | 20 | 35 | |
1 | 5 | 15 | 35 | 70 | |
1 | | | | | |
FOR i=0 TO N
A(i,J)=1
NEXT
I=0
FOR J=0 TO N
A(i,J)=1
NEXT
FOR J=1 TO N
FOR I=1 TO N
A(i,J)=a(i-1,J)+a(i,J-1)
PRINT A(I,J);
NEXT
PRINT
NEXT
Паук идет по направлению к солнцу.
Из одной клетки в другую только снизу вверх или справа на лево. Сколько возможных путей есть у паука ?
12.1.3. Преобразование двумерного массива в одномерный и обратно.
12.1.3.1. Из массива А(N,N) сформируйте B, развернув по строкам и столбцам.
K=0
DIM B ( N ^2)
REM K=1
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RND(1)*10)
PRINT A(I,J);
K=K+1
B(K)=A(I,J)
NEXT
PRINT
NEXT
FOR I=1 TO N*N
PRINT B(K);
NEXT
PRINT
12.1.3.2. По условию предыдущей задачи проделайте обратную операцию.
For j=1 to n
FOR I=1 TO N
K=K+1
A(I,J)=B(K)
PRINT A(I,j);
NEXT
PRINT
NEXT
12.1.4. Выборка и преобразование элементов двумерного массива.
12.1.4.1. В заданном массиве K(N,F) найдите сумму элементов в каждой строке. Сформируйте одномерный массив Q(N), содержащий полученные суммы. Элементы K(I,J) сформируйте случайным образом
INPUT “Количество строк”; N
INPUT “Количество столбцов”; F
FOR I=1 TO N
S=0
FOR J=1 TO F
K(i,J)=int(rnd(1)*10)
COLOR J
PRINT K(I,J);
S=S+K(I,J)
NEXT
Q(I)=S
PRINT
NEXT
FOR I=1 TO N
COLOR I
PRINT Q(I);
NEXT
PRINT
12.1.4.2. Сформируйте двумерную матрицу A(N,N) случайным образом. Элементы равные «3» замените нулем. Подсчитайте количество таких элементов.
Input N
INPUT M
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RND(1)*10)
IF A(I,j)=3 THEN A(I,J)=0:K=K+1
PRINT A(I,J);
NEXT
PRINT
NEXT
PRINT “Таких элементов”; K
12.1.4.3. Сформируйте двумерную матрицу A(N,N) случайным образом. Элементы по диагонали замените «9».
INPUT N
INPUT M
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RND(1)*10)
PRINT A(I,J);
IF I=J OR I+J=N+1 THEN A(I,J)=9
NEXT
PRINT
NEXT
FOR I=1 TO N
FOR J=1 TO N
PRINT A(I,J);
NEXT
PRINT
NEXT
12.1.4.4. Сформируйте двумерный массив A(N,N) случайным образом. Элементы первого и последнего столбца замените «1». Элементы первой и последней строки замените «0».
FOR I=1 TO N STEP N-1
FOR J=1 TO M
A(I,J)=1
NEXT
NEXT
FOR J=1 TO M STEP M-1
FOR I=1 TO N
A(I,J)=0
NEXT
NEXT
12.1.4.5. Двумерный массив заполнить «0» и «1» в шахматном порядке.
INPUT N
INPUT M
DIN A(N,M)
K=0
FOR I=1 TO N
FOT J=1 TO M
IF K=0 THEN A(I,J)=0:K=1 ELSE A(I,J)=1:K=0
NEXT
NEXT
FOR I=1 TO N
A(I,1)=1
A(I,M)=1
NEXT
FOR J=1 TO M
A(I,J)=0
A(M,J)=0
NEXT
12.1.4.6. Сформируйте массив A(N,N) случайным образом. Подсчитайте количество строк, сумма которых делится на 2 без остатка и количество столбцов, сумма которых 2*N.
INPUT N
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RND(1)*10)
NEXT
NEXT
OST=0
FOR I=1 TO N
OST=0
S1=0
K1=0
FOR J=1 TO N
S1=S1+A(I,J)
NEXT
OST=S1 MOD 2
REM S1/2=INT(S1/2)
IF OST=0 THEN K1=K1+1
NEXT
FOR J=1 TO N
S2=0
K2=0
FOR I=1 TO N
S2=S2+A(I,J)
NEXT
IF S2=2*N THEN K2=K2+1
NEXT
PRINT “Кол-во столбцов, удовлетворяющих условию”; K2
Print “Кол-во строк, удовлетворяющих условию”; K1
12.1.4.7. В массиве A(N,M) все числа различны. В каждой строке выбирается минимальный элемент, затем среди этих чисел выбирается максимальный. Напечатайте номер строки K массива Q(N), в которой расположено выбранное число.
INPUT “Введите количество строк ”; N
INPUT “Введите количество столбцов”; M
DIM Q(N)
DIM A(N,M)
FOR I=1 TO N
FOR J=1 TO M
COLOR J
A(I,J)=INT(RND(1)*10)
PRINT A(I,J);
NEXT
PRINT
NEXT
FOR I=1 TO N
MIN=A(I,1)
FOR I=2 TO N
IF MINA(I,J) THEN MIN=A(I,J):K=J
NEXT
PRINT “В ”; K; “столбце ”; I; ”строки находится минимальный элемент”; MIN
Q(I)=MIN
NEXT
MAX=Q(1)
FOR I=2 TO N
IF MAX
NEXT
PRINT “В ”;K;”строке находится ”;MAX
12.1.4.8. Сформируйте двумерную матрицу А(N,N) случ. образом. Элементы, равные"3", замените нулем. Подсчитайте кол-во таких элементов.
INPUT N
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(KND(1)*10)
IF A(I,J)=3 THEN A(I,J)=0;K=K+1
PRINT A(I,J);
NEXT
PRINT
NEXT
PRINT "таких элементов";К
12.1.4.9. Сформируйте двумерную матрицу А(N,N) случ. образом. Элементы по диагонали замените «9».
INPUT N
INPUT M
FOR I=1 TO N
FOR J=1 TO N
A(I,J)=INT(RND(1)*10)
PRINT A(I,J)
IF I=J THEN A(I,J)=9
OR I+J=N+1
NEXT
PRINT
NEXT
FOR I=1 TO N
FOR J=1 TO N
PRINT A(I,J)
NEXT
PRINT
NEXT
FOR I=1 TO N
A(I,I)=1
A(I,n+1-I)=1
NEXT
12.1.4.10. Сформируйте 2-мерный массив A(N,N) случайным образом. Элементы
1-й и последней строки замените”0”. 1-го и последнего столбца замените “1”.
FOR I=1 TO N STEP N-1 FOR J=1 TO M STEP M-1
FOR J=1 TO M FOR I=1 TO N
A(I,J)=0 A(I,J)=1
NEXT NEXT
NEXT NEXT
Произвольных столбцов заменить “1”. Произвольных стpок заменить “0”.
FOR I=1 TO N FOR J=1 TO M
A(I,J)=1 A(I,J)=0:A(M,J)=0
A(I,M)=1 NEXT
NEXT
12.1.4.11. Сформируйте массив A(N,N) образом. Подсчитайте кол-во строк, сумма эл-в которых делится на 2 без остатка и кол-во столбцов, сумма которых 2 * N.
INPUT M
FOR I=1 TO N
COLOR I
FOR J=1 TO N
A(I,J) = INT (RND(1)*10);
NEXT
PRINT
NEXT
OST=0
FOR I=1 TO N
OST=0:S1=0:K1=0
FOR J=1 TO N
S1=S1+A(I,J)
NEXT
OST=(S1)MOD(2)
IF OST=0 THEN K1=K1+1
NEXT
FOR J=1 TO N
S2=0: K2=0
FOR I=1 TO N
S2=S2+A(I,J)
NEXT
IF S22*N THEN K2=K2+1
NEXT
PRINT “кол-во столбцов, удовл. усл ="; К2;"кол-во строк удовл. усл="; К1
*
I=I+1
MAX=Q(I)
K=I
Задания на преобразование элементов двумерного массива.
В двумерном массиве каждую вторую строку заменить “0”. Каждый второй столбец заменить “1”.
В двумерном массиве произвольных чисел B(4,7) поменять местами второй и пятый столбцы.
3. В двумерном массиве A(N,N) сумма элементов по строкам равно ли сумме элементов по столбцам?.
4. В двумерном массиве в каждой строке занулите каждый третий элемент. А в каждом втором столбце каждый второй элемент замените 9.
5.В двумерном массиве у каждого второго элемента каждой второй строки извлечь корень. Изменить цвет этих элементов. В нечетных строках каждый третий элемент возвести в степень равную номеру строки.
6.Сформируйте массив C(N,N), где
I!
C(I,S)= S!*(I-S)! , при I S
0 , при I
7.Сформировать двумерный массив и заполнить числами Пифагора
a2+b2=c2
Например 32+42=52
Тогда массив будет иметь вид 3;4;5;*2
6;8;10;*3
9;12;15*4
12;16;15*4
т. е. первую тройку чисел.
8.Создать A(N,N)-двумерный массив, где каждый элемент получается геометрической прогрессией с шагом 2,(самый 1-ый элемент=7). Сформировать массив B, в который войдут все простые числа из первого.
9.В заданном A(N,N) найдите произведение элементов в каждом столбце, сформируйте одномерный массив содержащий полученные произведения по убыванию.
10.В заданном массиве A(N,N) элементов элементов в каждой строке. Сформировать два одномерных массива (содержащих четные и нечетные элементы) расположенные по возрастанию элементов.
11.В массиве X(M,N) все числа различны. В каждой строке выбирается минимальный элемент, затем среди этих чисел выбирается максимальный. Напечатать номер строки массива Х, в котором каждый элемент встречается несколько раз. Развернув его по строкам, удалите все повторяющиеся и сверните обратно по столбцам в массив В.
12.Создать двумерный массив A(N,N), где по строке каждый элемент
получается арифметической прогрессией с шагом 3,( самый первый элемент =2).
13.Сформировать одномерный массив B(N),в который войдут все числа из первого, кратные 2.
14.В двумерном массиве в каждой строке выбирается минимальный,
за тем среди этих чисел выбирается максимальное. Напечатайте номер строки массива A, в котором расположено выбранное.
15.Переформируйте А(N,N) так, чтобы строки нового массива располагались по убыванию их поэлементных сумм.
16.Выясните, является ли предложенный двумерный массив размером N*N магическим квадратом, т .е. массивом , суммы элементов которого по строкам , по столбцам и по обоим диагоналям равны.
17.В двумерном массиве А(N,N) по каждой строке найти количество чисел 5.Сформировать одномерный массив С, содержащий эти числа.
По каждому столбцу найти числа , кратные 9. Сформировать массив В, содержащий эти числа.
Все массивы вывести в разном цвете.
18.Рост студентов группы представлен в виде таблицы (2 * 30). Определить средний рост.
19. Успеваемость студентов группы представлена в виде таблицы(30 *10).Определить среднюю успеваемость по каждому предмету и средний балл каждого студента.
20. Сформируйте массив А(N,N), где каждый элемент формируется геометрической прогрессией по любым двум ее членам, номера которых известны.
21. Сформируйте массив А(N,N),где каждый элемент формируется арифметической прогрессией по любому члену прогрессии (номер которого известен) и разности прогрессии.
22. Сформируйте двумерный массив А(N,N), где каждый элемент формируется геометрической прогрессией по любому члену прогрессии, номер которого известен и равен знаменателю прогрессии.
23.Введите таблицу (10;10). Найдите произведение элементов в каждом столбце. Сформируйте строку, содержащую полученные произведения по убыванию.
24.Двумерный массив заполнить «0» и «1» в шахматном порядке.
25.Транспонируйте произвольный двумерный массив, т.е. поменяйте нумерацию его элементов
А(i, j)=А(j, i).
Дополнительные массивы не использовать.
26.Создать таблицу (20 * 20), у каждого второго элемента каждой второй строки извлечь корень. Изменить цвет этих элементов. В нечетных строках каждый третий элемент возвести в степень, равную номеру строки.
27.Сформеруйте двумерный массив N *N, где N лежит в пределах от 2 до 9,представляющий собой таблицу для N-ричной системы исчисления.
28.Создать таблицу(20*20), где каждый элемент получается геометрической прогрессией с шагом 2,(самый 1-ый элемент=7).
Сформировать строку, в которую войдут все простые числа из таблицы.
29.Сформируйте 2-мерный массив A(N,N) случайным образом.
Элементы 1-го и последнего столбца замените “1”.
Элементы 1-ый и последней строки заменить “0”
30.Создать таблицу(20;20)
По каждой строке найти числа, больше 5.(Ввести эти числа).
По каждому столбцу найти числа, кратные 9. Вывести эти числа .
Все массивы вывести в разном цвете.
31.В двумерном массиве 2 и 5 столбец поменяйте местами, 1 и 4 строку поменяйте местами.
32.Переформируйте A(N,N) так, чтобы столбцы нового массива располагались по возрастанию их поэлементных сумм.
33.Сформируйте массив A(N,M) случайным образом. Подсчитайте количество строк, сумма которых делиться на 2 без остатка и количество столбцов, сумма элементов которых 2*N.
34.Введите таблицу(10;10) элементов. Найдите сумму элементов в N-ой строке. Сформируйте строку, содержащую полученные суммы, расположенные по возрастанию.
35. Сформировать двумерный массив A(N,N) и заполнить цепочкой цифр 1,2,3,4,5,6,7,8,9.
13. Замечательные алгоритмы.
13.1. Куб любого натурального числа равен сумме N нечетных чисел, следующих по порядку за числами , сумма которых составила куб числа N-1.
1³=1 J=1
2³ =3+5 FOR I=1 TO N
3³=7+9+11 PRINT I+”^3”;
4³=13+15+17+19 FOR K=1 TO I
5³=21+23+25+29 PRINT J , “ +”;
J=J+2
NEXT
PRINT “ “
NEXT
9.2.Возведение в квадрат без операции умножения. Т. е. Квадрат любого натурального числа N равен сумме N первых нечетных чисел.
1²=1 FOR I=1 TO N
2²=1+3 PRINT I + “^2”
3²=1+3 +5 FOR K=1 TO I-1
4²=1+3+5+7 PRINT J+2; “+”;
5²=1+3+5+7+9 NEXT
PRINT J+2
NEXT
13.3. Пифагоровы числа. Т. е. умножаем каждое из чисел основной тройки на любое натуральное число, снова получим числа Пифагора.
A²+B²=C² (3²+4²=5²)
3 4 5
6 8 10
9 12 15
12 16 20
15 20 25
Найти все Пифагоровы числа
а=3: в=4: c=5
20 FOR I=2 TO 1000
30 PRINT а;”^2+”:b;”^2=”;c;”^2”
40 a=a*I
b=b*I
60 c=c*I
70 IF C1000 GO TO 90
NEXT
END
Как продолжение темы: “Замечательные свойства чисел” рассмотрим несколько исторических алгоритмов . И на их примере используем условные операторы и операторы перехода.
13.4. Алгоритм Евклида (нахождения НОД).
10 INPUT A
20 INPUT B
30 IF AB THEN C=A mod b:a=c ELSE c=b mod a:b=c
40 IF A=0 THEN PRINT “НОД=”;B:END
50 IF B=0 THEN PRINT “НОД=”;A:END
60 GO TO 30
13.5. Наименьшее общее кратное. Из 13.4. используем алгоритм НОД.
10 INPUTA
15 INPUTB
20 A1=A
25 B1=B
30 IF AB THEN C=a MOD B:a=c ELSE C=B MOD А:B=С
40 IF A=0 THEN C=A1/B*B1:PRINT C:END
50 IF B=0 THEN C=A1/B*B1:PRINT C:END
60 GO TO 30
13.6. Числа Фибоначчи. Дана последовательность чисел, причем каждый следующий равен сумме предыдущих. Для этой последовательности выполняется A(I)=A(I-1)+A(I-2). Получается последовательность чисел 0,1,1,2,3,5,8,13,21…
INPUT N
DIM A(N)
A(0)=0
A(1)=1
FOR I=2 TO N
A(I)=A(I-1)+A(I-2)
NEXT
FOR I=0 TO N
PRINT A(I);
NEXT
PRINT
13.7. Алгоритм Горнера. Алгоритм получения N-той последовательности многочлена Ньютона: Y=A0*XN+A1*XN-1+…AN-1*XN.
S1=AI-2-X+AI-1
………………….
SI=S I-1*X+A I
Найти до N-того элемента последовательности.
INPUT N
DIM A(N) :INPUT X:DIM S(N)
FOR I=0 TO N
A(I)=INT(RND(1)*10)
NEXT
S(1)=A(0)*X+A(1)
FOR I=2 TO N
S(I)=S(I-1)*X+A(I)
NEXT
FOR I=1 TO N
PRINT S(I);
NEXT
PRINT
14. Занимательные задачи.
14.1. Какой должен быть % роста вклада в банке, чтобы через 10 лет вклад удвоился?
10 INPUT “Размер вклада ?”;S
20 INPUT “% ?”;X
30 S1=0
40 S=0
50 FOR I=1 TO 10
60 S1=(S*X)/100
70 S=S+S1
80 NEXT
90 PRINT S
100 IF S2*S1 THEN PRINT “Повысьте % т. к. вклад достиг ”;S1;”руб.”
110 IF S=2*S1 THEN PRINT “Вы сделали правильную % ставку, вклад удвоился”
120 IF SСнижайте % ,т. к. вклад достиг ”;S1;”руб.”
14.2. Продавец Несчитайкина просит разработать для нее программу расчета стоимости (по стоимости 1кг какого-либо продукта) 50г. этого продукта, 100,150,200,…,1000,2000,10000г.
INPUT “Сколько стоит 1 кг? ”;N
S=N/1000
PRINT “Стоимость : вес”
FOR I=50 TO 1000 STEP 50
PRINT I*S;TAB(10);I
NEXT
FOR I=2000 TO 10000 STEP 1000
PRINT I*S;TAB(10);I
NEXT
*Задания:
Совершенные числа равны сумме своих делителей, меньших, чем оно само.
Например: 28=1+2+4+7+14
Найти все совершенные числа
==============================================================
Автоморфным называется такое число, которое равно последним цифрам своего квадрата. Например:
52=25
252=625
Найти все автоморфные числа 4000. Сформировать A(N,2), где N- количество таких чисел, A(N,1)-само число=625, A(N,2)-его квадрат-5.
===============================================================
Близнецы- это два простых числа, разность которых=2.
Например: 5 и 7; 11 и 13; 17 и 19…
Найти всех близнецов
==============================================================
Числа Фибоначчи, это числа A(I)=A(I-1)+A(I-2), т. е. каждое число равно сумме предыдущих. Т. е. получается цепочка: 1,1,2,3,5,8,13,21,34…
Заполнить одномерный массив числами Фибоначчи.
===============================================================
Компания по снабжению электроэнергией “Получиэнерго” взимает плату с клиентов по следующему тарифу:
8 коп. за 1кВт/ч для первых 300кВт/ч,
6 коп. за 1кВт/ч для следующих 300кВт/ч,
5 коп. за 1кBт/ч для следующих 400кВт/ч,
3 коп. за 1кВт/ч для всей энергии, потребляемой свыше 1000кВт/ч.
Написать программу для вычисления платы за электроэнергию для введенной величины потребленной энергии.. Приспособить ее для расчета с N клиентами.
===============================================================
Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2см, а каждый пасмурный день опускается на 1см. В начале наблюдений улитка находилась в Aсм от земли Bм дереве. Имеется тридцатиэлементный одномерный массив, содержащий сведения о том, был ли соответствующий день наблюдений солнечным или пасмурным. Написать программу, определяющую местоположение улитки к концу тридцатого дня наблюдений.
===============================================================
Дан натуральный массив S(N). Постройте на экране дисплея N столбиков, чтобы высота i-того столбика равна S(I).
===============================================================
В одномерном массиве A содержится график движения электропоездов от Вятских Полян до Казани в виде:1 элемент-время движения до первой остановки;2 элемент-время стоянки на первой остановки;3 элемент-время движения до второй остановки;4 элемент-время стоянки на второй остановке; и так далее… последний элемент-время движения от предпоследней остановки до Казани. В одномерном массиве B содержится подобный график движения электропоездов от Казани до B.-Полян (количество остановок совпадает). Известно время выхода(часы минуты) одного поезда из B.-Полян в Казань и время выхода другого поезда из Казани в В.-Поляны. Определить момент встречи поездов. Когда произойдет встреча : на остановке или в пути
===============================================================
Ежедневно Незнайка учит половину от суммы выученных за два предыдущих дня иностранных слов и еще два слова.. Знайка считает, что силы Незнайки иссякнут, когда нужно будет выучить 50 слов в день. Написать программу, определяющую, через сколько дней иссякнут силы у Незнайки, если в первые два дня он выучил по одному слову.
===============================================================
Возведите число A в степень N (где N-натуральное) пользуясь только операцией сложения. Например: 34=3333
шаг1 3+3+3=9
шаг2 9+9+9=27
шаг3 27+27+27
===============================================================11. В двух сосудах по 7,5л. машинного масла. В начале из первого сосуда взяли 20% имевшегося там масла и налили во второй сосуд. Затем из второго взяли 20% оказавшегося там масла и налили в первый сосуд. В каком сосуде масла стало больше и на сколько литров.
===============================================================
Царевна-лягушка съедает ежедневно на 20% комаров больше, чем в предыдущий день, и еще два комара. Написать таблицу, определяющую, через сколько дней количество съеденных комаров превысит 100, если в первый день было съедено 120 комаров..
===============================================================
Чтобы выявить самого драчливого разбойника, Али-Баба провел турнир, во время которого каждый его разбойник подрался с каждым из оставшихся. За победу присваивалось 7 очков, за ничью – 5, за поражение – 2. Результаты турнира были сведены в таблицу. Написать программу, определяющую победителя турнира.
===============================================================
На каждом следующем дне рождения Вини Пух съедает столько же пищи, что и на двух первых днях рождения у Пяточка и Кролика он съел по 100 г. пищи. Написать программу (алгоритм), определяющую, сколько килограммов пищи съест Вини Пух на пятнадцатом дне рождения.
===============================================================
Одноклеточная амеба каждые три часа делится на две клетки. Определить сколько клеток будет через 3, 6, 9, 12, …24 часа.
===============================================================
От острова Буяна до царства славного Салтана месяц пути. Капитан корабля записывает в вахтенный журнал количество миль,пройденных за день.Написать программу, определяющую, в какую десятидневку пройден больший путь.
===============================================================
Царевна Несмеяна каждому из претендентов на ее руку и сердце задает М вопросов. За очень понравившийся ответ она присуждает два балла, за не очень понравившийся ответ – 4, за не очень не понравившийся ответ – 6 баллов, за очень не понравившийся ответ – 8.Написать программу, определяющую самого понравившегося (набравшего наименьшее количество баллов) претендента.
===============================================================
Когда-то давным давно изобретателю шахмат предложили любую награду, какую он пожелает. Мудрец попросил на 1-ую клетку шахматной доски положить одно зернышко пшеницы, на 2-ую – в два раза больше, в 3-ю еще в два раза больше и так до последней, 64-й клетки.1 Сколько зерен пшеницы потребовал мудрец?2 Пусть 10 зерен весят 1 г. Сколько пшеницы в кг, тоннах получил мудрец?
===============================================================
Мой богатый дядюшка подарил мне один доллар в мой первый день рождения. В каждый следующий день рождения он удваивал свой подарок и прибавлял столько долларов, сколько лет мне исполнилось. Написать программу, подсчитывающую общую сумму денег, подаренных к N-му дню рождения и указывающую, к какому дню рождения сумма подарка превысит 100$.
===============================================================
Татьяна Ларина, читая очередной французский роман, подсчитала сумму номеров прочитанных страниц.. Обозначим эту сумму Q. Написать программу определяющую номер последней прочитанной страницы
===============================================================
Говорят, что число в названии «Сказки тысячи и одной ночи» записано в двоичной системе счисления. Перевести его в десятичную и написать программу выполняющую подобные переводы.
===============================================================
В одномерном массиве хранятся результаты социологического опроса. Написать программу для подсчета количества результатов, отклоняющихся от среднего не более, чем на 7 %
Составить программу нахождения координаты середины отрезка (a,b). Проверить для случая a=0,5 b=2
==============================================================
Три точки на плоскости заданы своими координатами A(x1,y1), B(x2,y2), С(x3,y3)Определить, лежат ли они на одной прямой
===============================================================
Три вершины A(x1;y1); B(x2;y2); C(x3;y3) треугольника заданы своими координатами. Составьте схему и программу вычисления площади треугольника
===============================================================
В массиве x(N) каждый элемент равен 0,1 или 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы и, наконец, все двойки (дополнительного массива не заводить).
===============================================================
Какой д/б. процент роста вклада в банке, чтобы через 10 лет вклад удвоился при инфляции 100% в год?
===============================================================
В таблице хранятся % вклада в банке. Найти ячейки, отклоняющиеся от среднего не более, чем на 12 %.
===============================================================
Рост учеников класса представлен в виде массива. Рост девочек записан со знаком “+”, мальчиков-знаком “-“. Определить средний рост мальчиков.
===============================================================
В массиве хранятся данные о температуре окружающего воздуха за месяц. Определить самую холодную декаду месяца.
===============================================================
Задан список участников соревнований по плаванию и их результаты. Расположить результаты и фамилии участники в соответствии с занятым местом.
===============================================================
Найти, вывести на экран все трехзначные числа, сумма кубов которых равна самому числу. Например:
43+03+73=407
13+53+33=153
15. Обработка символьных данных. Команды символьной обработки данных.
STR$(X) – Перевод числового значения в символьное значение.
VAL(X$) – Преобразование символа в числовое значение.
LEN(X$) – Число позиций в символьной строке.
K=INSTR(X$,Y$) – Номер позиции, в которой впервые найден символ “y” в строке “x“.
K=INSTR (I, X$,Y$) – Тоже с позиции I, а не с первой.
LEFT$(X$,I) – выборка I символов в символьной переменной х слева.
RIGHT$(X$,I) – выборка I символов в переменной х справа.
MID$($m, n) – выбор n символов начинается с т в переменной х.
TAB № – позиционирование курсора на экране.
15.1. Ввести с клавиатуры текст. Подсчитать, сколько раз вошла каждая буква.
05. DEFSTR T,B
10. INPUT ''ТЕКСТ”; T
20. K=LEN(T)
30. FOR I=1 TO K
40. B= MID$(T,I1)
50.W=1
60.FOR J=I+1 TO K
70.P=INSTR(J,T,B)
80.IF P0 THEN MID$(T,P,1)=” “
90.W=W+1
100.NEXT
110.PRINT”буква”;B;”встретилась”;W;”раз”
120.NEXT
15. 2.Бегущее слово.
INPUT “текст”;T$
K=LEN(T$)
FOR I=1 TO 80
PRINT (TAB 80-K-I);T$;SPC(80-I);CHR$(LOCATE 5,80-K-I)
NEXT
15.3.Найти и вывести все трехзначные числа, сумма кубов цифр которых равна самому числу. Например: 43 +03+73=407
13+53+33=153
33+73+03=370
33+73+13=371
DEFSTR L, P, S, F
FOR I=100 TO 999
F= STR$(I)
F= MID$(F,2,3)
L= MID$(F,1,1)
P= MID$(F,3,1)
S= MID$(F,2,1)
L1= VAL(L$)
P1=VAL(P$)
S1= VAL(S$)
IF I= L1^3+P1^3+S1^3 THEN PRINT I
NEXT
15.4. Имена нескольких людей заданы в следующем порядке Федор Семенович Кирилов, Александр Васильевич Степанов
Вывести в следующем виде Кирилов Ф.С.
Степанов А.В.
INPUT “Ф.И.О” TO FAM$
K=LEN(FAM$)
P=INSTR(FAM$,” “)
P1=INSTR(P,FAM$,” “)
OT$=MID$(FAM$,1,1)
IM$=MID$(FAM$,P+1,1)
K=K-P1
PRINT MID$ (FAM$,P1+1,K );” “;IM$;” “;OT$“ “.
15.5. Занимательная задача. Посмотрите результат.
INPUT “число”;C$
K=LEN(C$)
S=0
FOR I=1 TO K
PEP=VAL(MID$(C$,I,1))
S=S+PER*10^(K-I)
NEXT
PRINT ” 1001 в десятичном виде=”;S
15.6. Занимательная задача. Задан список абитуриентов A (N,2), где A (N,1)-фамилия, A(N,2)-оценка. Учитывая, что к следующему экзамену с «2» не допускают вывести список абитуриентов.
INPUT N
DIM A(N,2)
FOR I=1 TO N
INPUT “фамилия”;A (I,1)
INPUT “оценка”;A (I,2)
NEXT
FOR I=1 TON
IF A(I,2)”2” THEN PRINТ “ ДОПУЩЕН ;A(I,1)
NEXT
15.7. Составить список студентов группы.
10. INPUT “Количество учеников класса”;N
20. DEFSTR M
30. DIM M(N)
40. FOR I=1 TO N
50. INPUT “Введите фамилию”; M(I)
60. NEXT
15.8. Счастливое число L1*L2=P1*P2
10 FOR I = 1111 TO 9999
20 M$= STR$(I)
30 M$= MID$(M$,2,4)
40 L1$=MID$(M$,1,1)
50 L2$=MID$(M$,2,1)
60 P1$= MID$(M$,3,1)
70 P2$= MID$(M$,4,1)
L1= VAL(L1$)
L2 = VAL(L2$)
P1 = VAL (P1$)
P2 =VAL (P2$)
80 IF (L1*L2=P1*P2) THEN PRINT “счастливое число”; M
90 NEXT
15.9. Напишите про-му: Cлово “Вятские поляны”
Вятские Поляны M$=”Вятские Поляны”
Вятские Полян N=LEN(M$)
Вятские Поля FOR I = 0 TO N
Вятские Пол Q = N - I
Вятские По P$=LEFT$ (M$, Q)
Вятские П PRINT P$
Вятские NEXT
Вятски
Вятск
Вятс
Вят
Вя
В
15.10. Записать все четырехзначные числа в десятичной записи, в которых нет двух одинаковых цифр.
10 DEFSTER S,L
20 FOR I=1000 TO 9999
30 S=STR$(I)
40 S=MID$(S2,4)
50 L= LEFT$(S,1)
60 P=INSTR(2,S,L)
70 IF P0 GOTO 150
80 L2¤ =MID$(S,2,1)
85 P=INSTR (3,S,L2$)
IF P0 GOTO 150
L3=MID$(S,3,1)
120 P=INSTR (4,S,L3$)
130 IF P0 GOTO 150
140 PRINT “число”;S
150 NEXT
15.11. Вывести список учеников класса и количество букв в каждой фамилии.
LPRINT “список учеников класса”
LPRINT “№п/п: Ф. И. О. :Количество символов“
FOR I=1 TO N
PRINT I
PRINT TAB(5);FIO$(I)
K=LEN(FIO$(I))
PRINT TAB (30);K
NEXT
15.12. Сколько раз встречается фамилия «Иванов» в тексте.
100 DEFINT W,P
120 DEFSTR Q, F
130 Q = “Иванов”
135 w = 0
FOR I = 1 TON
150 P = INSTR(F(I),Q)
IF P 0 THEN W = W+1
170 NEXT
180 PRINT “ФАМИЛИЯ “;Q;” встречается”;W;“раз”
15.13. Вывести на экран все двузначные числа которые не содержат 2 одинаковых цифр
DEFSTR F,L,P
FOR I = 10 TO 99
F = STR$(I)
L = LEFT$(F,1)
P = RIGHT$(F,1)
IF LP THEN PRINT I
NEXT
15.14. Перекодировка
DEFSTR T, Z
INPUT “ВВЕДИТЕ ТЕКСТ”; T
K = LEN (T)
FOR I = 1 TO K STEP 2
Z = MID$ (T,I+1,1)
MID$ (T,I+1,1)=MID$(T,I 1)
MID$(T,I,I) = Z
NEXT
PRINT T
15. 15.Составьте блоксхему к данной программе
DEFSTR P, L, F
FOR I = 10 TO 99
F = STR$(I)
F = MID$(F,2,2)
L = LEFT$(F,1)
P = RIGHT$(F,1)
IF LP THEN PRINT F+” ; “
NEXT
15.16. Составьте блоксхему к данной программе
DEFSTR L,S
FOR I = 1000 TO 9999
S = STR$(I)
S = MID$(S,2,4)
L = LEFT$(S,1)
P = INSTR(2,S,L)
IF PO GOTO 150: PRINT I;” ; “
L2$= MID$(S,2,1)
P=ISTR(3,S,L2$)
IF P0 GOTO 150
L3$=LEFT$(S,3)
P=INSTR(4,S,L3$)
IF P0 GOTO 150
PRINT “число=”;S
15.17. Счастливое число.
DEFSTR
FOR I = 1000 TO 9999
S = STR$(I)
L1=MID$ (S,1,1)
L2=MID$(S,2,1)
P1 = MID$(S,3,1)
P2 = MID$(S,4,1)
IF VAL(L1$) *VAL(L2$) = VAL(P1$) * VAL(P2$) THEN PRINT “Счастливое число”;I
NEXT
15.18. Сколько раз встречается данная буква в данном тексте.
DEFSTR T
INPUT “Введите текст”;T
K = LEN$(T)
FOR I = 1 TO K
P = MID$ (T,I,1)
W = 1
FOR J= I+1 TO K
P = INSTR (J,T,B)
IF P0 THEN MID$(T,P,1) = “ “: W = W+1
NEXT
IF P” “ THEN PRINT “буква”;B;”встречается”;w;”раз”
NEXT
*Задания на символьную обработку данных.
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
===========================================================================
В применяемом коде каждая пара букв сообщения меняется местами (промежутки между словами исключаются ). Таким образом сообщение «Встречайте меня в среду» приобретает вид «Свртчейает емян сверуд». Для этого кода все сообщения должны содержать четное число букв. Напишите программу, которая расшифрует вводимое в нее закодированное сообщение. Проверьте программу на расшифровке такого закодированного сообщения: «ИПЬСОМПСЯРАТОНДВПУЕЛ»
===========================================================================
===========================================================================
===========================================================================
===========================================================================
13+53+33=153
………………
1000
===========================================================================
===========================================================================
===========================================================================
16. Графические возможности.
До сих пор вы работали в текстовом режиме монитора
Screen 0
Чтобы перейти в графический режим необходимо перевести экран с помощью команд:
Screen 1 *(320x200) - разрешение (размер экрана в пикселях)
Screen 2 *(640x200) - разрешение (размер экрана в пикселях)
Screen 3 *(720x348) - разрешение (размер экрана в пикселях)
Screen 4 *(640x400) - разрешение (размер экрана в пикселях)
Screen 7 *(320x200) - разрешение (размер экрана в пикселях)
Screen 8 *(640x200) - разрешение (размер экрана в пикселях)
Screen 9 *(640x350) - разрешение (размер экрана в пикселях)
Screen 10 *(640x350) - разрешение (размер экрана в пикселях)
Screen 11 *(640x480) - разрешение (размер экрана в пикселях)
Screen 12 *(640x480) - разрешение (размер экрана в пикселях)
Синтаксис команд
Screen 9
Color c1, c2 *(цвет линий, цвет фона)
Pset (x, y), c
Line (100,150)-(160,180), c, bf
Circle [step] (x, y), r, c, вырезать, оставить, k
*(0kcжатие по вертикали, k1-по горизонтали.)
R – радиус в пикселях
[step] – задаются координаты по отношению к текущей
графичекой позиции курсора
(x, y) – координаты центра
С – цвет (цифра от 0 до 15)
Вырезать, оставить – начало угловой дуги,конец угловой
Дуги, отношение y/x
16.1 Шаблон программы рисования кругов или овалов
for i=1 to 15
Circle (x+i*10, y+i*10), r, c, вырезать, оставить, k
Next
Примеры программ
16.2.
For x=-100 to 100 step 0.1
Pset (x*10+320, (-x^2)*10+250)
next
===================================================
16.3
For x=-100 to 100 step 0.1
Pset (x*10+320, sin(x)*10+250)
next
16.4
x1=320
y1=150
x2=150
y2=250
x3=500
y3=200
for i=0 to 15
color i
line (x1+i*10,y1+i*10)-(x2+i*10,y2+i*10)
line (x2+i*10,y2+i*10)-(x3+i*10,y3+i*10)
line (x1+i*10,y1+i*10)-(x3+i*10,y3+i*10)
next
16.5
for i=1 to 15
Line (100+i*10,150+i*10)-(160+i*10,180+i*10), c, bf
Next
================================================================
cls: pcls
rem рисование точки
pset (70 , 70) , 6
cls : pcls
rem линия
line (100,100) – (200,200) ,7
cls : pcls
rem линия с продолжением
LINE (0, 0) – (100, 0), 7: LINE – ( 150, 50), 7
rem рисование нескольких линий
cls: pcls
line (200,200) – (100,200) , 7 : line – (100,100)
rem прямоугольник (закрашенный)
cls: pcls
line ( 100,100) – (200,200) , 7, b
line (100,100) – (200,200) , 7, bf
LINE (50, 150) – (100, 200), . BF
cls : pcls
rem рисование окружности
circle (100,100) , 100 , 7 ,,, 1.2
circle (100,100),50,7,,,1 . 3 окружности
rem эллипс (по у)
circle (100,100) ,50,7
cls : pcls
rem рисование дуги окружности
pi = 4* atn (1)
circle (200,200) , 100 , 7 , 0 , pi , 1 . 2
circle (200,200) , 100 , 7 , - 0 , - pi , 1 . 2
circle (200,100),50,7,0,2*atn (1) , 1 . 3 дуга
rem сектор окружности
circle (200,150) , 50,7, -0, -2*atn (1) , 1.3
rem (закрашенный сектор окружности)
PAINT (201, 149), 7, 7
cls : pcls x, y r цвет
LLIST ( печать программы ).
16.6
Rem График параболы
For x=-100 to 100 step 0.1
Pset (x*10+320, (-x^2)*10+250)
next
16.7
Rem График синусоиды
For x=-100 to 100 step 0.1
Pset (x*10+320, sin(x)*10+250)
next
16.8.
Rem Треугольники в цикле
x1=320
y1=150
x2=150
y2=250
x3=500
y3=200
for i=1 to 15
line (x1+i*10,y1+i*10)-(x2+i*10,y2+i*10)
line (x2+i*10,y2+i*10)-(x3+i*10,y3+i*10)
line (x1+i*10,y1+i*10)-(x3+i*10,y3+i*10)
next
16.9
Rem Прямоугольники в цикле
for i=1 to 15
Line (100+i*10,150+i*10)-(160+i*10,180+i*10), i, bf
Next
Rem Круги в цикле
for i=1 to 15
Circle (x+i*10, y+i*10), r, c, 0.8, 0.5, 0.7
Next