Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика в задачах, примерах, алгоритмах

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
652 Кб
Скачать

9. Циклы и массивы

'полученный массив выводим во второй столбец

For i = 1 To N Cells(i, 2) = a(i)

Next i

MsgBox (“ñì.ëèñò2") End Sub

Пример 2. При помощи датчика случайных чисел заполнить целочисленную квадратную матрицу А порядка N (N ввести с клавиатуры).

Данная программа написана как макрос к любой книге MSExcel.

VisualBasic

Sub ЗаполнениеМатрицы()

'При помощи датчика случайных чисел заполнить 'целочисленную квадратную матрицу А порядка N '(N ввести с клавиатуры) целыми числами от 1 до 100.

'Вывести матрицу А на рабочий лист2.

Dim a() As Integer, N As Integer, t As Integer

Dim i As Integer, j As Integer, col As Integer, numb As Integer

Sheets(“ëèñò2").Select: Cells.Delete 'очистить весь лист N = Val(InputBox(“Введите порядок матрицы”)) 'Ввод раз 'мерности массива

ReDim a(N, N) 'переопределяем массив(матрицу) Randomize Timer 'Инициируем генератор случайных

'чисел в зависимости от таймера 'компьютера.

For i = 1 To N 'начало цикла заполнения матрицы

For j = 1 To N

a(i, j) = Rnd * 99 + 1.1 'Генерируем случайное число от 1 'äî 100

Cells(i, j) = a(i, j) 'Засылаем элемент матрицы в ячейку

 

'рабочего листа

Next j, i

'конец цикла заполнения массива

End Sub

 

Обратите внимание, что массив А определен с начальным индексом 0, а заполняется с индекса 1.

121

Информатика в задачах, примерах, алгоритмах

Задачи

297. Написать таблицу перевода температур из градусов Цельсия (°С) в градусы Фаренгейта (F) по формуле: F=1,8 ½ C + 32 начи- ная с 0 °С и до 100 °С. Вывести на экран значения 1 °С, 17 °С, 25 °С и 95 °С. Какова температура возгорания бумаги градусах Цельсия, если это 400 °F.

Ответ: 1 °С = 33,8 °F, 17 °С = 62,6 °F, 25 °С = 77 °F, 95 °С = 203 °F, 400 °F = 204,4444 °C.

298. Напечатать таблицу соответствия между весом в фунтах (lbs) и весом в килограммах (кг), начиная с 1 кг и до 100 кг. 1 фунт = 0,454 г. Вывести на экран значения 1 кг, 10 кг, 16 кг, 70 кг, 54 кг, 150 pnd, 200 pnd.

Ответ: 1 кг = 2,202 6 lbs, 10 кг = 22,026 lbs, 16 кг = 35,2423 lbs, 70 кг = 154,185 lbs, 54 кг = 118,943 lbs, 150 lbs = 68,1 кг, 200 lbs = 90,8 кг.

299. Напечатать таблицу перевода длины в футах (f.) в длину в метрах, начиная с 1 м и до 100 м. 1 фут = 30,48 см. Вывести на экран значения 1 м, 10 м, 16 м, 70 м, 54 м, 1,80 футов, 6,5 футов, 200 футов, 150 футов.

Ответ: 1 м = 3,281 f., 10 м = 32,808 f., 16 м = 52,4931 f., 70 м = 229,6589 f., 54 м = 118,943 f., 1,8 футов = 5,906 м, 6,5 футов = 1,9812 м, 200 футов = 60,96 м, 150 футов = 45,72 м.

300. Напечатать таблицу перевода расстояний в дюймах в сантиметры, начиная с 1 дюйма и до 12 дюймов. 1 фут = 12 дюймов = 30,48 см. Вывести на экран все значения.

Ответ: 1 дюйм = 2,54 см, 2 дюйма = 5,08 см, 3 дюйма = 7,62 см, 4 дюйма = 10,16 см, 5 дюймов = 12,7 см, 6 дюймов = 15,24 см, 7 дюймов = 17,78 см, 8 дюймов = 20,32 см, 9 дюймов = 22,86 см, 10 дюймов = 25,4 см, 11 дюймов = 27,94 см, 12 дюймов = 30,48 см.

301. Заполнить массив в 25 элементов членами последовательно-

ñòè {a1 = 0, a2 = 4, ..., a n = a n1 3a n2 } и посчитать сумму отрицательных элементов.

Ответ: –1644128.

122

9. Циклы и массивы

302. Заполнить массив в 50 элементов членами последовательно-

 

1

 

1

 

1

 

ñòè

 

,

 

 

,

 

, ... и посчитать сумму всех элементов.

 

 

 

 

 

2

 

3

 

4

 

Ответ: 3,518813.

303. Заполнить массив в 25 элементов членами последовательно-

 

1

 

 

2

 

3

 

ñòè

 

 

,

 

,

 

, ... и посчитать сумму элементов с 10-го и

 

 

 

 

 

Sin1

 

Sin 2

 

Sin3

 

до конца.

Ответ: –2635,135

304. Составить таблицу расстояний до линии горизонта для наблюдателя, находящегося на высоте Н от поверхности земли для величины Н от 10 до 100 метров с интервалом 10 м. Радиус Земли принять равным 6380 км. (Расстояние можно рассчитать по формуле: l = (R + h)2 R 2 .)

Ответ: Ïðè h = 10 ì l = 11 296,02 ì; ïðè h = 20 ì l = 15 974,99 ì;

ïðè h = 30 ì l = 19 565,3 ì; ïðè h = 40 ì l = 22 592,07 ì; ïðè h = 50 ì l = 25 258,71 ì; ïðè h = 60 ì l = 27 669,54 ì; ïðè h = 70 ì l = 29 888,65 ì; ïðè h = 80 ì l = 31 950,06 ì; ïðè h = 90 ì l = 33 888,17 ì; ïðè h = 100 ì l = 35 721,28 ì.

305. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через 3, 6, 9, ... , 24 часа?

Ответ: Через 3 часа 2 клетки; через 6 часов 4 клетки; через 9 ча- сов 8 клеток; через 12 часов 16 клеток; через 15 часов 32 клетки; че- рез 18 часов 64 клетки; через 21 час 128 клеток; через 24 часа 256 клеток.

306. Заполнить массив в 100 элементов членами последовательно-

 

 

= 25Sin 25 Cos

2

 

= 3,84, ..., a n =

a n1 3a n2

 

ñòè: a

1

 

25, a2

 

, ... .

 

 

 

 

 

 

 

 

n

 

123

Информатика в задачах, примерах, алгоритмах

Найти и напечатать минимальный и максимальный элементы массива.

Ответ: min = –4,291277, max = 5,571277.

307. Заполнить массив в 100 элементов членами последовательно-

 

 

= 25Sin 25 − Cos

2

 

= 3,84, ..., a n =

a n1 − 3a n2

 

ñòè: a

1

 

25, a2

 

, ... .

 

 

 

 

 

 

 

 

n

 

Найти и напечатать среднее арифметическое всех элементов массива.

Ответ: 1,384347Е–02.

308. Заполнить массив в 100 элементов членами последовательно-

 

 

= 25Sin 25 − Cos

2

 

= 3,84, ..., a n =

a n1 − 3a n2

 

ñòè: a

1

 

25, a2

 

, ... .

 

 

 

 

 

 

 

 

n

 

Найти и напечатать:

a)среднее арифметическое всех положительных элементов массива;

Ответ: 0,1940029.

b)среднее арифметическое всех отрицательных элементов массива.

Ответ: –0,2454103.

10. Работа с символьной информацией

При решении информационно-поисковых задач в автоматизированных системах управления (АСУ), в экономических задачах наряду с вычислительными операциями широко используется обработка символьных данных.

Средства обработки символьной информации в языке Бейсик представлены достаточно большим набором операторов и специальных функций. По назначению их можно разделить на группы (см. табл.).

124

10. Работа с символьной информацией

Преобразование кодов

 

функции CHR$, ASC, LCASE$,

 

UCASE$

 

 

 

 

 

 

 

Выделение определенной

части сим-

функции LEFT$, MID$, RIGHT$

вольного выражения

 

 

 

 

 

 

 

 

 

 

Замена части символьного выражения

оператор MID$, функции LTRIM$,

RTRIM$

 

 

 

 

 

 

 

 

 

Обмен символьными выражениями

оператор SWAP — в VB отсутствует,

функции LSET, RSET

 

 

 

 

 

 

 

 

Формирование

строк

одинаковых

функции STRING$, SPACE$

символов

 

 

 

 

 

 

 

 

 

 

Обработка числовой

информации в

функции VAL, STR$

тексте

 

 

 

 

 

 

 

 

 

 

 

Перевод чисел

èç

одной системы

функции OCT$, HEX$

счисления в другую

 

 

 

 

 

 

 

Определение количественных характе-

функции LEN, INSTR

ристик символьных строк

 

 

 

 

 

 

 

 

 

Символьные функции

 

 

Функция

Выполняемое действие

 

 

ASC(x)

Возвращает код ASCII первого символа в символьной пе-

ременной õ

 

 

 

CHR(x)

Возвращает символ, соответствующий коду ASCII x

 

 

INSTR(x,y)

Возвращает позицию первого обнаружения строки õ â

строке ó

 

 

 

LEFT(õ,n)

Возвращает n символов, стоящих с левого края символьной

переменной õ

 

 

 

LTRIM(x)

Удаляет начальные пробелы в символьной переменной õ

 

 

MID(x, i, k)

Вырезает из символьной переменной õ k символов, начи-

íàÿ ñ i-òîãî

 

 

 

RIGHÒ(õ,n)

Возвращает n символов, стоящих с правого края символь-

ной переменной õ

 

 

 

RTRIM(x)

Удаляет конечные пробелы в символьной переменной õ

 

 

SPACE(n)

Возвращает n пробелов

 

 

STR(x)

Переводит числовое значение переменной õ в символное

значение

 

 

 

STRING(L,x)

Возвращает L символов, совпадающих с первым символом

символьной переменной õ

 

 

 

VAL(x)

Переводит символьное значение переменной õ в числовое

значение

 

 

 

125

Информатика в задачах, примерах, алгоритмах

Пример 1.

Макрос на VB

Sub пример()

'При помощи датчика случайных чисел ввести последо 'вательность {ai}, состоящую из N (случайное двузнач 'ное число) целых положительных случайных 4-значных 'чисел. Из {ai} получить последовательность {bi} 'переставив в элементах ai вторую и четвертую цифры. 'Обе последовательности вывести в соседние столбцы ра 'бочего листа книги Excel.

Dim a As Long, N As Integer

Randomize Timer

'включаем генератор случайных

 

'чисел

N = Rnd * 89 + 10

'случайное 2-значное число

Sheets(“ëèñò3").Select

'переходим на третий лист

Range(“d1:e100").Clear

'очищаем область ввода данных

Cells(1, 4) = “Задача 1"

 

Cells(1, 4).Interior.ColorIndex = Int(Rnd * 10)

For i = 2 To N + 1

 

a =Int(Rnd*8999+1000)

'получаем случайное 4-значное

 

'число

Cells(i, 4) = a

'выводим его в столбец D

Cells(i, 5) = перестановка24(a) 'заполняем столбец E

Next End Sub

Function перестановка24(a As Long) As Long Dim s As String, t As String * 1

s = Trim(Str(a)) 'переводим число в строк. переменную t = Mid(s, 2, 1) 'переставляем 2-й и 4-й символы

Mid(s, 2, 1) = Mid(s, 4, 1) Mid(s, 4, 1) = t перестановка24 = Val(s) End Function

126

10. Работа с символьной информацией

Пример 2.

QBasic

'Программа для вычисления суммы цифр числа

INPUT d%

'Ввод числа

s$ = STR$(d%)

'переводим в символьный вид

L = LEN(s$)

'определяем длину (число символов)

d = 0

'для накопления суммы

FOR i = 1 TO L

'цикл на число символов

t$ = MID$(s$, i, 1) 'вырезаем очередной символ

n = VAL(t$)

'переводим в число

d = d + n

'прибавляем к сумме

NEXT

 

PRINT d

'выводим на экран

Пример 3.

Qâasic

Написать программу, которая вводит два числа (N и D) и в интервале целых чисел от 0 до N находит все такие числа, норма которых равна D. (Нормой числа называется сумма всех цифр данного числа по модулю 10, то есть если сумма цифр числа больше девяти, то к этой сумме опять применяется суммирование. Нормой числа 35489 является число 2 (3 + 5 + 4 + 8 + 9 = 29; 2 + 9=11; 1 + 1 = 2)). Напечатать все такие числа и сколько их всего.

DECLARE FUNCTION trans! (ch!)

CLS

'Программа вычисления нормы числа (функция trans!- ре 'курсивная).

INPUT “Введите N”; n INPUT “Введите D”; d FOR i = 1 TO n

ch = i

127

Информатика в задачах, примерах, алгоритмах

WHILE trans(ch) > 9

'Для нормы числа

ch = trans(ch)

 

WEND

 

IF trans(ch) = d THEN s = s + 1: PRINT i

NEXT

 

PRINT s

 

 

 

FUNCTION trans (ch)

'норма числа

IF ch > 9 THEN

 

trans=ch MOD 10 + trans(ch \ 10) 'Делим число по модулю 'и к полученному 'остатку прибавляем trans(ch)

'trans(ch) делает число на порядок меньше

ELSE trans = ch END IF

END FUNCTION

Задачи

309. Найти все четырехзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 4 и на 22. Все такие числа вывести во второй столбец рабочего листа1 книги Excel, а число таких чисел вывести с помощью MsgBox.

Ответ: 27 чисел.

310. Найти все четырехзначные числа, в которых только две одинаковые цифры. Все такие числа вывести во второй столбец рабо- чего листа2 книги Excel, а число таких чисел вывести с помощью MsgBox.

Ответ: 1944 числа.

311.Определить, есть ли среди цифр трехзначного числа две одинаковые цифры.

312.Найти все четырехзначные числа, в которых сумма цифр является однозначным числом. Все такие числа вывести во второй столбец рабочего листа3 книги Excel, а число таких чисел вывести с помощью MsgBox.

Ответ: 495 чисел.

128

10. Работа с символьной информацией

313.Вывести число, полученное заменой порядка следования цифр введенного трехзначного числа. Например, если введено число 123, то программа должна напечатать число 321.

314.Вывести наибольшую из первых цифр трех введенных чисел. Например, если а = 38, b = 924, c = 87, то надо вывести цифру 9.

315.Подсчитать сумму трехзначных чисел, в десятичной записи которых нет четных цифр. Все такие числа вывести во второй столбец рабочего листа3 книги Excel, а сумму вывести с помощью MsgBox.

Ответ: Сумма = 69375.

316.Каждую четную цифру в записи натуральных чисел, записанных в первом столбце в 10 строках, уменьшить в два раза и вывести во второй столбец соответствующей строки. Например, для исходного числа 64583 получается число 32543.

317.В первом столбце первой и второй строки рабочего листа1 книги Excel записаны два натуральных числа — двузначное и трехзначное. В ячейку A3 вывести разность суммы цифр этих чи- сел.

Ответ: Если A1 = 57, а A2 = 695, то в A3 должно быть –8.

318.Каждую нечетную цифру в записи натуральных чисел, записанных в первом столбце рабочего листа1 книги Excel в 10 строках, увеличить на 1 и вывести во второй столбец соответствующей строки. Например, для исходного числа 64583 получается число 64684. Цифра 9 заменяется на 0.

319.Каждую четную цифру в записи натуральных чисел, записанных в первом столбце рабочего листа1 книги Excel в 10 строках, уменьшить на 1 и вывести во второй столбец соответствующей строки. Например, для исходного числа 64583 получается число 53573. Цифра 0 заменяется на 9.

320.В первом столбце первой и второй строки рабочего листа1 книги Excel записаны два натуральных числа. Во втором столбце рабо- чего листа1 книги Excel первой и второй строки — тоже два натуральных числа. В ячейку A3 вывести min(A1,A2). В ячейку B3 вывести max(B1,B2). В ячейку C3 вывести max(min(A1,A2),max(B1,B2)).

321.В записи натуральных чисел, записанных в первом столбце рабочего листа1 книги Excel в 10 строках, вычеркнуть цифры из

129

Информатика в задачах, примерах, алгоритмах

разрядов с четными номерами и вывести во второй столбец соответствующей строки. Например, для исходного числа 64583 полу- чается число 48. Нумерация разрядов начинается с 0.

322.В записи натуральных чисел, записанных в первом столбце рабочего листа1 книги Excel в 10 строках, вычеркнуть первую цифру и вывести во второй столбец соответствующей строки. Например, для исходного числа 64583 получается число 4583.

323.В записи натуральных чисел, записанных в первом столбце рабочего листа1 книги Excel в 10 строках, каждую цифру увели- чить на 3 и вывести во второй столбец соответствующей строки. Цифра 7 заменяется на 0, цифра 8 заменяется на 1, цифра 9 заменяется на 2.

324.В записи натуральных чисел, записанных в первом столбце рабочего листа1 книги Excel в 10 строках, поменять порядок следования цифр на обратный, удалив при этом из записи получаемого числа все вхождения цифры, записанной в ячейке C1, и вывести во второй столбец соответствующей строки. Например, для исходного числа 64583 и C1=3 получается число 8546.

11. Файлы. Работа с файлами

Общие сведения о файлах

Информация, которая вводится или выводится из программы, организована в файлы. Файлом называется именованная совокупность связанных между собой записей.

Запись представляет собой набор элементов, рассматриваемых как единое целое с точки зрения устройства ввода-вывода. Именно записями одно устройство компьютера (например, память) обменивается с другим (например, принтером или дисководом). В предельном случае запись может быть и одним символом. Для нас наибольший интерес представляют файлы на магнитных дисках, как наиболее распространенный способ хранения и обработки информации. Имя дискового файла хранится в оглавлении диска или каталога (в Windows-папке). Вместе с именем файла там же хранится информация о длине файла, дате его создания, дате обновления.

130

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]