Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Fmt.Fprint(writer, pageBottom)





}

4 Функция processRequest выглядит следующим образом:

/*Функция возвращает введенные числа (массив), строку, если возникает ошибка и логическое значение. Эта функция читает данные формы из значения request*/

func processRequest(request *http.Request) ([2]float64, string, bool) {

var floats [2]float64 //массив с вещественными числами

count:= 0 //количество прочитанных чисел

for index, key:= range []string{"a", "b"} {

/*Значение request имеет поле Form типа map[string][]string. Это означает, что ключи отображения являются строками, а значения – срезами со строками. То есть одному ключу соответствует значение, содержащее произвольное количество строк.

Функция проверяет наличие ключа "key" (значения определены во внешнем цикле) и, если он присутствует и его значение содержит хотя бы одну строку, можно быть уверенными, что в форме имеются числа для чтения*/

if slice, found:= request.Form[key]; found && len(slice) > 0 {

if slice[0]!= "" {

/*Для каждой строки предпринимается попытка преобразовать строку в значение типа float64 с помощью функции strconv.ParseFloat(), принимающей строку и размер результата в битах, 32 или 64. Если в процессе преобразования возникнет ошибка, вызывающей программе немедленно возвращаются все числа типа float64, которые удалось получить, непустое сообщение об ошибке и значение false*/

if x, err:= strconv.ParseFloat(slice[0], 64); err!= nil {

return floats, "'" + slice[0] + "' ошибка", false

} else {

/*В случае успешного преобразования полученное число типа float64 добавляется в массив floats*/

floats[index] = x

}

} else {

/*Если поля для ввода чисел были пусты при очередном нажатии кнопки Выполнить, то числам будут присвоены нулевые значения*/

request.Form[key][0] = "0"

floats[index] = 0

}

count++

}

}

/*Если форма отображается первый раз, элементы <input> с именами «a» и «b» еще пусты. Это не является ошибкой, поэтому возвращается пустой срез со значениями типа float64, пустое сообщение об ошибке и false, чтобы показать, что статистические характеристики не были вычислены, – в результате этого будет отображена пустая форма*/

if count!= 2 { // при первом запуске поля пустые

return floats, "", false //это не ошибка

} else { // но вычислять нечего

/*Если пользователь ввел некоторые данные, возвращается срез со значениями типа float64, пустое сообщение об ошибке и true*/

return floats, "", true

}

}

5 Функции для расчета результата выполнения арифметических операций практически одинаковы, поэтому рассмотрим только функцию для операции деления:

/*Функция принимает в качестве аргумента массив из введенных чисел и возвращает результат в формате float64 и строку, которая пуста, когда операция деления допустима, иначе, принимает значение «Деление на 0»*/

func division(floats [2]float64) (float64, string) {

a, b:= floats[0], floats[1] /*переменные принимают значения первого и второго числа соответственно*/

if b == 0 {

return 0, "Деление на 0"

} else {

return a / b, ""

}

}

Остальные функции оформите самостоятельно.

6 Функция для вывода результатов вычислений может быть следующей (оформляется таблица с результатами выполнения арифметических операций):

func formatSolutions(x [2]float64, a, b, c, d float64, str string) string {

if str == "" {

return fmt.Sprintf(`<table border="1">

<tr><th colspan="2">Результат</th></tr>

<tr><td>Число a</td><td>%f</td></tr>

<tr><td>Число b</td><td>%f</td></tr>

<tr><td>Сложение (a+b)</td><td>%f</td></tr>

<tr><td>Вычитание (a-b)</td><td>%f</td></tr>

<tr><td>Умножение (a*b)</td><td>%f</td></tr>

<tr><td>Деление (a/b)</td><td>%f</td></tr>

</table>`, x[0], x[1], a, b, c, d)

} else {

return fmt.Sprintf(`<table border="1">

<tr><th colspan="2">Результат</th></tr>

<tr><td>Число a</td><td>%f</td></tr>

<tr><td>Число b</td><td>%f</td></tr>

<tr><td>Сложение (a+b)</td><td>%f</td></tr>

<tr><td>Вычитание (a-b)</td><td>%f</td></tr>

<tr><td>Умножение (a*b)</td><td>%f</td></tr>

<tr><td>Деление (a/b)</td><td>%s</td></tr>

</table>`, x[0], x[1], a, b, c, str)

}

}

Результат работы приложения представлен на рисунке 2.3:

 

Рисунок 2.3 - Результат работы веб-приложения

 

Задание 2.9 Дополните приложение новыми возможностями (используйте функции из таблицы 1.8).

Задание 2.10 Выполните задания по вариантам.

Задача 1 Требуется вывести «Истина», если приведенное высказывание для предложенных исходных данных является истинным, и «Ложь» ‑ в противном случае. Все числа, для которых указано количество цифр (двузначное число, трехзначное число и т.д.), считаются целыми.

Вариант 1

Квадратное уравнение A·x2 + B·x + C = 0 с данными коэффициентами A, B, C имеет вещественные корни

Вариант 2

Данные числа x, y являются координатами точки, лежащей во второй координатной четверти

Вариант 3

Данные числа x, y являются координатами точки, лежащей в первой или третьей координатной четверти

Вариант 4

Точка с координатами (x, y) лежит внутри прямоугольника, левая верхняя вершина которого имеет координаты (x1, y1), правая нижняя — (x2, y2), а стороны параллельны координатным осям

Вариант 5

Данное целое число является четным двузначным числом

Вариант 6

Данное целое число является нечетным трехзначным числом

Вариант 7

Среди трех данных целых чисел есть хотя бы одна пара совпадающих

Вариант 8

Среди трех данных целых чисел есть хотя бы одна пара взаимно противоположных

Вариант 9

Сумма цифр данного трехзначного числа является четным числом

Вариант 10

Сумма двух первых цифр данного четырехзначного числа равна сумме двух его последних цифр

Вариант 11

Данное четырехзначное число читается одинаково слева направо и справа налево

Вариант 12

Все цифры данного трехзначного числа различны

Вариант 13

Цифры данного трехзначного числа образуют возрастающую последовательность

Вариант 14

Цифры данного трехзначного числа образуют возрастающую или убывающую последовательность

Вариант 15

Цифры данного трехзначного числа образуют арифметическую прогрессию

Вариант 16

Цифры данного трехзначного числа образуют геометрическую прогрессию

Задачи 2 и 3 выполнить в виде веб-приложения:

Вариант 1

Задача 2 Заменить наименьшее из трех чисел суммой двух других чисел.

Задача 3 Дано целое число в диапазоне 100 – 999. Вывести строку — словесное описание данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать»

Вариант 2

Задача 2 Дано целое число, лежащее в диапазоне от –999 до 999. Вывести строку — словесное описание данного числа вида «отрицательное двузначное число», «нулевое число», «положительное однозначное число» и т.д.

Задача 3 В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года вывести его название, если 1984 год был началом цикла — годом зеленой крысы

Вариант 3

Задача 2 Заменить наибольшее из трех чисел разностью двух других чисел.

Задача 3 Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, предшествующей указанной

Вариант 4

Задача 2 Из трех данных чисел выбрать наименьшее и наибольшее и заменить третье число из разностью.

Задача 3 Единицы длины пронумерованы следующим образом: 1 ‑ дециметр, 2 ‑ километр, 3 ‑ метр, 4 ‑ миллиметр, 5 ‑ сантиметр. Дан номер единицы длины и длина отрезка L в этих единицах (вещественное число). Вывести длину данного отрезка в метрах

Вариант 5

Задача 2 Перераспределить значения переменных X и Y так, чтобы в X оказалось меньшее из этих значений, а в Y — большее.

Задача 3 Единицы длины пронумерованы следующим образом: 1 ‑ дециметр, 2 ‑ километр, 3 ‑ метр, 4 ‑ миллиметр, 5 ‑ сантиметр. Дан номер единицы длины N1, длина отрезка L в этих единицах N1 (вещественное число) и номер единицы измерения N2. Вывести длину данного отрезка в единицах измерения N2

Вариант 6

Задача 2 Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по возрастанию.

Задача 3 Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы и масса тела M в этих единицах (вещественное число). Вывести массу данного тела в килограммах

Вариант 7

Задача 2 Дано целое число, лежащее в диапазоне от 1 до 9999. Вывести словесное описание данного числа вида «четное двузначное число», «нечетное четырехзначное число» и т.д.

Задача 3 Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы N1, масса тела M в этих единицах N1 (вещественное число) и единица массы N2. Вывести массу данного тела в единицах массы N2

Вариант 8

Задача 2 Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения.

Задача 3 Единицы измерения количества информации пронумерованы следующим образом: 1 ‑ бит, 2 ‑ байт, 3 ‑ килобайт, 4 ‑ мегабайт. Дан номер единицы измерения N1, количество информации K в единице измерения N1 (вещественное число) и номер единицы измерения N2, в которую нужно перевести К

Вариант 9

Задача 2 Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной максимальное из этих значений, а если равны, то присвоить переменным нулевые значения.

Задача 3 Робот может перемещаться в четырех направлениях («С» ‑ север, «З» ‑ запад, «Ю» ‑ юг, «В» ‑ восток) и принимать три цифровые команды: 0 ‑ продолжать движение, 1 ‑ поворот налево, 2 ‑ поворот направо. Дан символ C ‑ исходное направление робота и число N ‑ посланная ему команда. Вывести направление робота после выполнения полученной команды

Вариант 10

Задача 2 Даны три переменные: X, Y, Z. Если их значения упорядочены по убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное.

Задача 3 Локатор ориентирован на одну из сторон света («С» ‑ север, «З» ‑ запад, «Ю» ‑ юг, «В» ‑ восток) и может принимать три цифровые команды: 1 ‑ поворот налево, 2 ‑ поворот направо, 3 ‑ поворот на 180 градусов. Дан символ C ‑ исходная ориентация локатора и числа N1 и N2 ‑ две посланные ему команды. Вывести ориентацию локатора после выполнения данных команд

Вариант 11

Задача 2 Даны три переменные: X, Y, Z. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное.

Задача 3 Элементы окружности пронумерованы следующим образом: 1 ‑ радиус (R), 2 ‑ диаметр (D), 3 ‑ длина (L), 4 ‑ площадь круга (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке)

Вариант 12

Задача 2 Даны целочисленные координаты точки на плоскости. Если точка не лежит на координатных осях, то вывести 0, если совпадает с началом координат ‑ 1, если не совпадает с началом координат, но лежит на оси OX или OY, то вывести соответственно 2 или 3.

Задача 3 Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 ‑ катет (a), 2 ‑ гипотенуза (c), 3 ‑ высота, опущенная на гипотенузу (h), 4 ‑ площадь (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке)

Вариант 13

Задача 2 Даны вещественные координаты точки, не лежащей на координатных осях OX и OY. Вывести номер координатной четверти, в которой находится данная точка.

Задача 3 Элементы равностороннего треугольника пронумерованы следующим образом: 1 ‑ сторона (a), 2 ‑ радиус вписанной окружности (R1), 3 ‑ радиус описанной окружности (R2), 4 ‑ площадь (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке)

Вариант 14

Задача 2 На числовой оси расположены три точки: A, B, C. Определить, какая из двух последних точек (B или C) расположена ближе к A, и вывести эту точку и ее расстояние от точки A.

Задача 3 Арифметические действия над числами пронумерованы следующим образом: 1 ‑ сложение, 2 ‑ вычитание, 3 ‑ умножение, 4 ‑ деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат

Вариант 15

Задача 2 Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию.

Задача 3 Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, следующей за указанной

Вариант 16

Задача 2 Дан номер некоторого года (положительное целое число). Вывести соответствующий ему номер столетия, учитывая, что, к примеру, началом 20 столетия был 1901 год.

Задача 3 Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести строку — словесное описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год»







ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.