Рассмотрим сначала как заполнять массив значениями и как ыводить массив на экран.
В задачах я быду использовать массив на 25 элементов: ширина экрана 80 символов, если хранить в массиве числа до 100 и учесть разделитель между ними в строке поместится как раз 25 символов))
Давайте обьявим массив и сразу же выведем его на экран(убедимся что там нули)
Действительно нули))
Теперь заполним массив случайными числами и выведем на печать
В строках 8 и 13 добавлен пустой оператор print для того чтобы после вывода массива следующий вывод начинался с новой строки.
Если хотите программу можно сделать "короче", записав цикл в одной строке - это дело вкуса и собственного стиля.
Этот код программы теперь можно брать как шаблон для решения задач с массивами. Нужно только в 14 строке в первом варианте и в 7 строке во втором варианте добавить строки по условию задачи.
Маленькое отступление
Вывод на экран может быть не только черно-белым(вернее бело-черным)
Можно используя старый оператор бейсика COLOR устанавливать цвет выводимых символов. COLOR n, n - код цвета. Во FreeBASIC оператор COLOR обладает более широкими возможностями, это можно посмотреть в справке.
От частого использования эти 16 цветов можно запомнить, ну а если забудете, или пока ещё не знаете можно их и узнатьпо коду.
Как видите можно сказать даже что их восемь, первые восем тусклее, а вторые ярче. 4- красный, 4+8=12 ярко красный))
Нам же пока для решения задач достаточно выводить на экран разным цветом.
Будем считать что в задачах дан массив на 25 элементов. Чтобы не тратить время на ввод 25 элементов массива(input (a(i)), заполняем массив случайными числами.
Задача 1
Найти среднее арифметическое элементов массива. При выводе массива на экран элементы меньшие за арифметическое среднее вывести желтым цветом(код 14), большие голубым(код 11). Если же в массиве встретится элемент равный среднему арифметическому - вывести его белым цветом.
Нам понадобится ещё одна переменная, для среднего арифметического. Правда уже не целого, а вещественного типа.
Добавим в третью строку шаблона строки:
dim sarifm as double
sarifm=0
В седьмой же строке циклом выполним подсчет среднего арифметического.
for i=1 to 25:sarifm=sarifm+a(i):next i
sarifm=sarifm/25
А вывод(в 16 строке шаблона) изменим на условие задания.
От значения элемента зависит цвет выводимого элемента, но сам вывод не зависит - мы выводим ведь все элементы. Вот и зададим цвет выводимиого элемента в зависимости от его значения. А потом безо всяких условий выведем и сам элемент.
if a(i)<sarifm then color 14
if a(i)>sarifm then color 11
if a(i)=sarifm then color 15
print a(i);
Задача 2
Вывести элементы массива четные белым, нечетные - красным. Если встретится ноль - серым.
Задача 3
Вывести элементы масива котрые стоят на чётной позиции белыми, а те что стоят на нечётной - красными.
Задача 4
Те элементы массивва которые больше по значению чем первый элемент ввести серым, а те что меньше - голубым.
Предлагаю решить эти задачи самостоятельно, и потом можете переходить к следующим задачам, чуточку посложнее
Задача 5
Вывести элементы которые больше чем предыдущий красным цветом, а те которые меньше - серым, если равен предыдущему - белым.
Особенность это й задачи в том, что у первого элемента нет предыдущего. И можно или каждый раз проверять индекс в цикле больеш ли он за 1, или начать цикл со второго элемента)) - так и сделаем
Сначала выведем первый элемент массива, каким бы он ни был.
print a(1);
for i=2 to 25
if a(i)>a(i-1) then color 4
if a(i)<a(i-1) then color 7
if a(i)=a(i-1) then color 15
можно и немного по иному
print a(1);
for i=2 to 25
считаем что элемент равен предыдущему
color 15
проверяем и если случилось по иному, т.е. что не равен, переустановим цвет на другой.
if a(i)>a(i-1) then color 12
if a(i)<a(i-1) then color 7
откуда же взялся жёлтый цвет? от предыдущей задачи - нужно в начале программы установить цвет.
Долго программируя в школьных и других слабых бейсиках я и забыл о том, что в FreeBASIC есть очень много нового...
Как сделать так чтобы в программе в 15 строке было не i=2
, а i=1
поначалу я думал так:
if i>1 and a(i)>a(i-1) then color 4
if i>1 and a(i)<a(i-1) then color 7
if i>1 and a(i)=a(i-1) then color 15
т.е. цвет переопределять только для последующих элементов после первого, а поэтому сразу выбрал второй вариант, как более "красивый", но теперь вот вспомнил одно новшество циклов на FreeBASIC. А вы вспомнили?
for i=1 to 25
if i=1 then continue for
if a(i)>a(i-1) then color 4
if a(i)<a(i-1) then color 7
if a(i)=a(i-1) then color 15
Ещё несколько легких задачек, как для первого раза при работе с массивами.
Задача 6
Найти сумму четных и сумму нечётных элементов массива.
Задача 7
Найти среднее арифметичексое элементов массива больших за среднее арифметичексое элементов массива.
Задача 8
Найти наибольший элемент в массиве
Задача 9
Найти наименьший элемент в массиве
13 FreeBASIC - массивы(задачи)
12 FreeBASIC - массивы
11 FreeBASIC - задачки
10 FreeBASIC - Игра угадай число
09 FreeBASIC - случайные числа, RND
08 FreeBASIC - случайные числа, RND
07 FreeBASIC - циклы
06 FreeBASIC - условный оператор
05 FreeBASIC - первые простые задачки
04 FreeBasic - графика
03 FreeBASIC. Текстовые переменные и операции с ними
02 FreeBASIC Переменные в Бейсике
01 Начинаем изучать FreeBasic
00 FreeBASIC лучший из диалектов бейсика
✅
✅
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
spinner, littleboo, aim, ianboil, analise, francisgrey, mishka, sergiy, vako, gildar, andrvik, max-max, zoss, midnight, dimarss, kilobucks, ohlamoon, shuler, rusalka, maksina, zlody, dr-boo, arsar, volv, nefer, turkish-r, renat242, markvial, vict0r, lira, gryph0n, voltash, ladynazgool, karusel1, sharps, cepera, francesco, exan, retoldname, stranniksenya, alikssandra, gapel, galerina, acidgarry, oagalakova, borisss, candy777, optimist, lushaya, bammbuss, dmitrijv, seagull15, manavendra, mr-nikola, ondantr, nerengot, vladsm, mirgais, varja, upper, prifix, mp42b, abloud, foxycat, ksantoprotein, process, nikulinsb, tulencha, amalinavia, kito-boy, vsebudethorosho, nikitosuna, konstab, izbushka, astramar, propoker, cryptovisitor, zelivsky, html, vredinka2345, carpe-diem, makcl, ivanzar, marina-spring, azarovskiy, funt33, sinilga, samael27, kalter, vp-cosmos, maksh, mister-omortson, nightinga1e, apnigrich, siddxa, cryptobandera, doublingseason, necrogenesis, photofreediver, lologom, prezza, akva22, elcpa, karabum, sevaev, dobrotanya, boliwar, veta-less, irkinmick, svetozarhobbot, archual, automedia, alexxela, vitalist, burger-knig, cryptenthusiast
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
Ничё не понятно)))
Сюда приплывал Моби Дик
✅🤙 🚀