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

Учебное пособие 889

.pdf
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
634.64 Кб
Скачать
19

<?

echo phpinfo(); ?>

Задание № 2. Создать программу для расчета математического выражения, используя функции из табл. 2. На экран вывести результат и формулу, по которой производился расчет. Значение a должно генерироваться с помощью датчика случайных чисел. Варианты задания приведены в табл. 3.

Таблица 3

Варианты задания № 2

Номер

 

 

 

 

 

 

 

 

Функция

варианта

 

 

 

 

 

 

 

 

 

1

 

 

 

x

 

, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y sin(x), если a 2;

 

a cos(x), если a 3.

 

 

 

 

 

 

 

 

 

 

2

a sin(x), если a 1;

 

 

 

x

3

, если a 2;

 

y

 

 

 

 

 

 

 

 

e

x

, если a 3.

 

 

 

 

 

 

 

3

 

 

x

 

, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y ln x, если a 2;

 

cos(x), если a 3.

 

 

 

 

 

 

 

 

 

 

4

tg (x), если a 1;

 

 

2

, если a 2;

 

y x

 

 

 

sin(x), если a 3.

 

 

 

 

 

 

 

 

 

 

5

x3 , если a 1;

 

 

2

, если a 2;

 

y x

 

 

 

 

 

 

 

 

 

 

 

 

 

x, если a 3.

 

 

Продолжение табл. 3

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, если a 1;

 

 

4

, если a 2;

 

y x

 

 

 

 

sin(x), если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

cos(x)

 

, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y sin(x) cos(x), если a 2;

 

 

5

, если a 3.

 

x

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y ctg (x), если a 2;

 

 

3

, если a 3.

 

x

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y log10 (x), если a 2;

 

cos(x), если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

x, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y arctg (x), если a 2;

 

 

 

x

 

, если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

x

 

, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y cos(x), если a 2;

 

a sin(x), если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

tg (x), если a 1;

 

 

 

 

 

3

, если a 2;

 

x

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

, если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

13

 

 

 

 

 

x, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y sin(x) x, если a 2;

 

a tg (x), если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

Окончание табл. 3

14

x 4 , если a 1;

 

 

3

, если a 2;

 

y x

 

 

 

 

 

 

 

 

 

 

 

x

 

, если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

tg (x), если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

y cos(x), если a 2;

 

sin(x), если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

x

 

, если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, если a 2;

 

y

 

 

 

 

2

 

, если a 3.

 

x

 

 

 

 

 

17

 

 

 

 

x4 , если a 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

y cos(x), если a 2;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, если a 3.

 

 

 

 

18

tg (x), если a 1;

 

 

x

2

, если a 2;

 

y

 

 

 

 

 

 

 

x

 

, если a 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 3. Составить программу, которая:

создает и выводит на экран массив из 7 – 10 целых элементов с помощью датчика случайных чисел;

рассчитывает сумму и произведение элементов массива;

находит в массиве максимальный и минимальный эле-

менты;

сортирует массив по возрастанию и по убыванию;

перемешивает элементы массива в случайном порядке.

Задание 4. Составить программу по работе с двумерным массивом согласно варианту задания.

21

1. Дана матрица F(3,4). Сформировать массив E(3), элементы которого представляют суммы элементов строк матрицы F. Вывести E и F по строкам.

2.Найти и вывести сумму максимального и минимального элементов матрицы B(3,3). Вывести B по строкам.

3.Дана матрица A(5,5), найти максимальный элемент среди отрицательных элементов матрицы, вывести его значе-

ние, номер строки и столбца, где он расположен. Вывести A по строкам.

4.Дана матрица B(3,5), сформировать массив А(5), элементы которого представляют произведение элементов строк матрицы B. Вывести A и матрицу B по строкам.

5.Дана матрица B(4,4), найти минимальный элемент среди положительных элементов матрицы, вывести его значение, номер строки и столбца, где он расположен. Вывести B по

строкам.

6.Найти максимальный элемент в каждой строке матрицы А(4,4). Вывести на печать эти элементы, номера столбцов и строк, в которых они расположены. Вывести A по строкам.

7.Найти минимальный элемент в каждом столбце матри-

цы B(3,4). Вывести на печать эти элементы, номера столбцов и строк, в которых они расположены. Вывести B по строкам.

8. Найти максимальный элемент на главной диагонали матрицы F(4,4) и сформировать матрицу P(4,4), элементы которой получены из элементов F путем умножения на максимальный. Матрицы P и F вывести по строкам.

9.Найти первый отрицательный элемент в матрице R(3,3)

исформировать матрицу P(3,3), элементы которой получаются

из соответствующих элементов матрицы R путем деления на первый отрицательный. Матрицы P и R вывести по строкам.

10. Дана матрица B(3,4). Все отрицательные элементы заменить на -1, все положительные - на 1, нулевые оставить без изменения. Преобразованную и исходную матрицы вывести по строкам.

22

11. Найти максимальный элемент ниже главной диагонали матрицы S(4,4). Сформировать матрицу T(4,4), элементы которой получены из элементов S путем деления на найденный элемент. Матрицы S и T вывести по строкам.

12.Дана матрица Q(4,4). Заменить на нули все элементы выше главной диагонали. Преобразованную и исходную матрицы вывести по строкам.

13.Дана матрица R(3,3). Найти сумму элементов массива

вкаждом столбце. Вывести на экран матрицу и полученные суммы.

14.Дана матрица D(4,4). Заменить на 0 все четные элементы матрицы. Преобразованную и исходную матрицы выве-

сти по строкам.

15.Дана матрица V(3,5). Найти сумму элементов массива

вкаждой строке. Вывести на экран матрицу и полученные

суммы.

16.Дана матрица T(4,4). Найти количество отрицательных элементов в каждой строке матрицы. Вывести на экран матрицу и полученные результаты.

17.Дана матрица K(4,4). Заменить все нечетные элементы

матрицы на -1. Преобразованную и исходную матрицы вывести по строкам.

18. Дана матрица P(3,4). Найти произведение минимального и максимального элементов матрицы. Вывести на экран матрицу и полученные результаты.

23

2. ЛАБОРАТОРНАЯ РАБОТА № 11. РАБОТА С АССОЦИАТИВНЫМИ МАССИВАМИ.

ФОРМАТИРОВАНИЕ ВЫВОДА. РАБОТА С ДАТОЙ И ВРЕМЕНЕМ

2.1. Общие методические указания по выполнению лабораторной работы

Цели работы:

освоить методы работы с ассоциативными массивами;

изучить принципы форматирования вывода данных в

PHP;

– ознакомиться с основными функциями по работе с датой и временем.

Среда выполнения и отладки:

Текстовый редактор Notepad++, веб-браузер (Firebox, Internet Explorer, Opera или др.).

2.2. Теоретические сведения

Ассоциативные массивы

Использование данных массивов позволяет ссылаться на элементы массива по именам, а не по номерам.

Например, рассмотренный выше массив можно создать следующим способом:

<?php

$paper[‘copier’] = “Copier & Multipurpose”; $paper[‘inkjet’] = “Inkjet Printer”; $paper[‘laser’] = “Laser Printer”; $paper[‘photo’] = “Photographic Paper”; echo $paper[‘laser’];

?>

24

Теперь у каждого элемента вместо числа (не содержащего никакой полезной информации, кроме позиции элемента в массиве) имеется уникальное имя, по которому на него можно сослаться где-нибудь в другом месте (например, в инструкции echo).

Присваивание с использованием ключевого слова

array

Помимо вышеуказанных, существует более краткий и быстрый способ присваивания значений с использованием ключевого слова array.

Пример ниже иллюстрирует создание обоих видов массивов с помощью ключевого слова array.

<?php

$p1 = array(“Copier”, “Inkjet”, “Laser”, “Photo”); echo “Элемент массива p1:” . $p1[2] . ”<br>”;

$p2 = array( ‘copier’ => “Copier & Multipurpose”, ‘inkjet’ => “Inkjet Printer”,

‘laser’ => “Laser Printer”,

‘photo’ => “Photographic Paper”);

echo “Элемент массива p2: “ . $p2[‘inkjet’] . “<br>”;

?>

В первой части этого кодового фрагмента массиву $p1 присваивается укороченное описание товара. Здесь используются четыре элемента, поэтому они занимают позиции от 0 до 3. Инструкция echo выводит следующий текст:

Элемент массива p1: Laser

Во второй части кода массиву $p2 присваиваются ассоциативные идентификаторы и сопутствующие им длинные описания товаров. Для этого используется формат index => value. Использование оператора => похоже на использование опера-

25

тора присваивания =, за исключением того, что значение присваивается индексу, а не переменной. После этого индекс приобретает неразрывную связь с этим значением до тех пор, пока ему не будет присвоено другое значение. Поэтому команда echo выводит следующий текст:

Элемент массива p2: Inkjet Printer

Цикл foreach…as

Данный цикл специально ориентирован на работу с массивами. Используя цикл foreach, можно перебрать все элементы массива и произвести с ними какие-нибудь действия.

Процесс начинается с первого элемента и заканчивается последним, поэтому не необходимости указывать пределы цикла. Например:

<?php

$paper = array(“Copier”, “Inkjet”, “Laser”, “Photo”); $j = 0;

foreach ($paper as $item)

{

echo “$j: $item<br>”; $j++;

}

?>

Когда PHP встречает инструкцию foreach, он извлекает первый элемент массива и помещает его значение в переменную, указанную после ключевого слова as, и при каждом возвращении управления инструкции foreach в эту переменную помещается значение следующего элемента массива. В данном случае переменной $item присваиваются по очереди все четыре значения, хранящиеся в массиве $paper. Как только будут использованы все значения, выполнение цикла завершается.

26

С ассоциативным массивом foreach работает следующим образом:

<?php

$paper = array( ‘copier’ => “Copier & Multipurpose”, ‘inkjet’ => “Inkjet Printer”,

‘laser’ => “Laser Printer”,

‘photo’ => “Photographic Paper”); foreach ($paper as $item => $description)

echo “$item: $description<br>”;

?>

Ассоциативным массивам не требуются числовые индексы, поэтому каждый элемент массива $paper вводится в пару «ключ – значение», представленную переменными $item и $description, из которых эта пара выводится на экран в следующем виде:

copier: copier & Multipurpose inkjet: Inkjet Printer

laser: Laser Printer

photo: Photographic Paper

В качестве альтернативы синтаксису foreach…as можно воспользоваться функцией list в сочетании с функцией each.

<?php

$paper = array( ‘copier’ => “Copier & Multipurpose”, ‘inkjet’ => “Inkjet Printer”,

‘laser’ => “Laser Printer”,

‘photo’ => “Photographic Paper”); while (list($item, $description) = each($paper))

echo “$item: $description”;

?>

27

В этом примере организуется цикл while, который будет продолжать работу до тех пор, пока функция each не вернет значение FALSE. Функция each ведет себя как foreach: она возвращает из массива $paper массив, содержащий пару «ключ

– значение», а затем перемещает встроенный указатель на следующую пару в исходном массиве. Когда возвращать станет нечего, функция each возвращает значение FALSE.

Функция list в качестве аргументов принимает массив (в данном случае пару «ключ – значение», возвращенную функцией each), а затем присваивает значение массива переменным, перечисленным внутри круглых скобок.

Форматирование вывода с использованием функции printf()

Функция printf() управляет форматом выводимых данных путем вставки в строку специальных форматирующих символов.

Функция printf() ожидает, что для каждого форматирующего символа будет предоставлен аргумент, который будет отображаться с использованием заданного формата. Например, в следующем фрагменте используется спецификатор преобразования %d, для того, чтобы значение 3 отображалось в виде десятичного числа:

printf(“В Вашей корзине находится %d покупки”, 3);

Если заменить %d на %b, значение 3 будет отображено в виде двоичного числа (11). В табл. 4 показаны поддерживаемые функцией спецификаторы преобразования.

28