Моделирование памяти компьютера
Процесс моделирования с использованием имитации записи компьютером в оперативной памяти значений величин, используемых в программе, после исполнения каждого шага программы, состоит в следующем: память компьютера представляется в виде классной доски или листа бумаги, на которых можно записывать информацию, читать, стирать, записывать заново. Учащимся необходимо напомнить, что значение каждой величины в компьютере хранится в отдельной ячейке, и любая величина сохраняет своё значение, пока ей не будет присвоено новое значение. Место, отводимое в памяти компьютера под значения величин, используемых в программе, изображается в виде прямоугольника, сверху пишут, под значения величин какого алгоритма отводится эта область. Место, отводимое в памяти компьютера для каждой величины, также изображается в виде прямоугольника. Тип и имя величин указывается сверху выделенных прямоугольников, а значения величин, если они определены, записываются внутри прямоугольника. Если значение величины не определено, то в прямоугольнике ничего писать не надо. Если при выполнении команды программы меняется значение какой-то величины алгоритма, то в прямоугольник, соответствующий этой величине, заносится новое значение. Последовательно выполняемые команды записываются между рисунками, вместо имен переменных в выражениях указываются их значения, за проверяемым условием в скобках пишется значение этого условия (истинно/да или ложно/нет).
Пример 3. Напишите программу вычисления площади треугольника по трём сторонам, если заведомо известно, что треугольник существует. Исполните составленную программу, используя метод моделирования памяти, для a = 3, b = 4, c = 5.
Решение
алгплощадь_треугольника (аргвещ a, b, c, резвещ s) | 1 – ый способ
дано| длины трех сторон треугольника: a, b, c
надо |вычислить площадь s треугольника
начвещ p
│ р:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c))
кон
алг площадь_треугольника | 2 – способ
дано| длины трех сторон треугольника: a, b, c
надо| вычислить площадь s треугольника
начвещ a, b, c, s, p
│ вывод “Введите длины трех сторон a, b, c”; ввод a, b, c
│ р:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c))
│ выводнс, “Площадь равна”, s
кон
Исполнение алгоритма «площадь_треугольника»
Изобразим на доске или в тетради прямоугольник, сверху напишем, под значения величин какого алгоритма отводится эта область.
Место, отводимое в памяти компьютера для каждой величины, также удобно изображать в виде прямоугольника. Тип и имя величин будем указывать сверху выделенных прямоугольников, а значения величин (если они определены) записывать внутри прямоугольника.
1 шаг. Отводится место для исполняемой программы и величин, используемых в программе
2 шаг. Программа запрашивает значения a, b, c. Пользователь вводит эти значения с клавиатуры. Компьютер заносит эти значения в память. Пусть введены: a = 3, b = 4, c = 5.
3 шаг. Компьютер вычисляет значение p и заносит в память: p = (3+4+5)/2 = 6.
4 шаг. Компьютер вычисляет значение s и заносит его в память: .
5 шаг. Компьютер выводит значение площади s на экран.
Пример 4. Напишите программу обмена значениями двух переменных m и n целого типа: переменная m должна принять значение переменной n, а переменная n – значение переменной m. Исполните составленную программу, используя метод моделирования памяти, для m = 25, n = -10.
Решение: Чтобы найти способ решения поставленной задачи, рассмотрим такую «жизненную» ситуацию. Имеется два сосуда с жидкостью, в стакане находится молоко, а в чашке – кофе с молоком. Требуется обменять содержимое этих сосудов так, чтобы в стакане было кофе с молоком, а в чашке – молоко. Возникает необходимость иметь ещё один пустой сосуд, например, бокал, для того чтобы выполнить следующие действия: перелить молоко из стакана в бокал, перелить кофе с молоком из чашки в стакан, перелить молоко из бокала в чашку. Все сосуды вмещают одинаковое количество жидкости. Житейская задача решена.
Решим основную задачу. Чтобы обменять значениями две переменные m и n целого типа, можно использовать ещё одну переменную целого типа, например, переменную k. Запрограммируем выполнение следующих действий: переменной k присвоим значение переменной m, k:=m,переменной m присвоим значение переменной n, m:=n,переменной n присвоим значение переменной k, n:=k. Эти действия реализованы в алгоритме «алгобмен значениями».
алгобмен значениями
дано| значения переменных m и n
надо | обменять значениями переменные m и n
начцел m, n, k
вывод “Введите значения m и n”
вводm, n
k:=m; m:=n; n:=k
выводнс, “m=”, m, “n=”, n
кон
Исполнение алгоритма «обмен значениями»
1 шаг. Отводится место для исполняемой программы и величин, используемых в программе.
2 шаг. Программа запрашивает значения m, n. Пользователь вводит эти значения с клавиатуры. Компьютер заносит эти значения в память. Пусть введены: m = 25, n = -10.
3 шаг. Компьютер переменной k присваивает значение переменной m: k = 25.
4 шаг. Компьютер переменной m присваивает значение переменной n, m = -10.
5 шаг. Компьютер переменной n присваивает значение переменной k, n = 25.
6 шаг. Компьютер выводит значения переменных m и n на экран: m = -10, n = 25.
Пример 5. Напишите программу БИТ, нахождения числа bid – большего числа из трёх вещественных чисел, заданных с клавиатуры. Исполните составленную программу, используя метод моделирования памяти, для m = -5.34, n = -10.5, k = -3.3.
Решение: Чтобы выбрать большее число из трёх заданных чисел m, n, k, можно выбрать сначала большее число из двух чисел m и n, выбранное большее значение присвоить переменной bid. Затем выбрать большее число из чисел bid и k. Чтобы выбрать большее число из чисел m и n, необходимо сравнить эти числа, m>n (?). Если высказывание m>n – истинное высказывание, то переменной bid нужно присвоить значение m, иначе значение n. Далее нужно сравнить значения переменной bid и переменной k, bid<k (?). Если высказывание bid<k – истинное высказывание, то переменной bid присваивается значение переменной k, иначе значение переменной bid больше значения k или ему равно, и никаких действий производить не нужно. Эти действия реализованы в алгоритме «алгБИТ».
алгБИТ дано|значения переменных m , n, k надо |переменной bid присвоить |большее значение из значений |переменных m, n, k начцел m, n, k, bid │вывод “Введите значения m, n, k” │вводm, n, k | │если m>n ││то bid:=m ││иначе bid:=n │все │если bid<k ││то bid:=k │все │выводнс, “bid =”, bid кон |
Исполнение алгоритма «БИТ»
1 шаг. Отводится место для исполняемой программы и величин, используемых в программе.
2 шаг. Программа запрашивает значения m, n, k. Пользователь вводит эти значения с клавиатуры. Компьютер заносит их в память. Пусть введены: m = -5.34, n = -10.5, k = -3.3.
3 шаг. Компьютер проверяет истинность высказывания m>n (?), то есть -5.34>-10.5. Это высказывание истинно, выполнятся команды, следующие за служебным словом «то».
4 шаг. Компьютер переменной bid присваивает значение переменной m, bid:=m, bid = -5.34. Значение bid записывается в память компьютера.
5 шаг. Компьютер проверяет истинность высказывания bid<k (?), то есть -5.34<-3.3. Это высказывание истинно, выполнятся команды, следующие за служебным словом «то».
6 шаг. Компьютер переменной bid присваивает значение переменной k, bid:=k, bid = -3.3 Значение bid записывается в память компьютера.
7 шаг. Компьютер выводит значение переменной bid, равное
-3.3, на экран.
Дата добавления: 2015-01-26; просмотров: 1178;