рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

И Радиосвязь, радиовещание и телевидение дневного отделения

И Радиосвязь, радиовещание и телевидение дневного отделения - раздел Связь, Министерство Образования И Науки Российской Федерации Новосибирский ...

Министерство образования и науки Российской Федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 
 


004 № 4172

И 741

 

ИНФОРМАТИКА

 

Часть 1

 

Методические указания к лабораторным работам для студентов I курса
факультета РЭФ специальностей «Радиотехника»
и «Радиосвязь, радиовещание и телевидение» дневного отделения

 

 

НОВОСИБИРСК

УДК 004(076.5) И 741  

ИНФОРМАТИКА

Часть 1

Методические указания

Редактор Л.Н. Ветчакова Выпускающий редактор И.П. Брованова Компьютерная верстка Л.А. Веселовская

ОГЛАВЛЕНИЕ

 

1. Общие требования и порядок выполнения лабораторных работ. 4

2. Работа в интегрированной среде visual studio.............................. 5

Лабораторная работа № 1. Программирование линейных
вычислительных процессов................ 13

Лабораторная работа № 2. Программирование условных операторов
и операторов цикла............................. 27

Лабораторная работа № 3. Вычисление сумм и произведений...... 44

Лабораторная работа № 4. Программирование операций
с матрицами......................................... 49

 

 
 

 

 

Общие требования и порядок выполнения лабораторных работ

2. В конце лабораторной работы студенты предъявляют преподавателю работающую программу и получают соответствующую отметку в журнале. 3. Отчет по лабораторной работе в обязательном порядке должен содержать… – титульный лист установленного образца;

РАБОТА В ИНТЕГРИРОВАННОЙ СРЕДЕ VISUAL STUDIO

Консоль – это монитор и клавиатура, рассматриваемые как единое устройство. Консольное приложение Win32 – 32-разрядная программа, запускаемая в окне DOS… Проект –это набор файлов, которые используется при создании автономного исполняемого файла.

Создание проекта и добавление файла исходного кода

В меню Файл выберите пункт Создать и щелкните левой кнопкой мыши по Проект...(рис. 1). 2. В списке типов проектов Visual C++ выберите Win32 и щелкните пункт… Введите имя проекта (рис. 2).

Исправление ошибок компиляции с помощью интегрированной среды разработки

cout<<name<<endl 2. В меню Построение выберите команду Построить решение. 3. Сообщение, появляющееся в окне Вывод(рис. 7)указывает на то, что построение проекта выполнить не удалось.

Дополнительные средства интегрированной среды VISUAL STUDIO

Контекстное меню редактора кода

Здесь нас интересуют следующие пункты: Перейти к определению, Перейти к… Первые два пункта не имеет смысла объяснять – из названий и так все понятно. А вот при выборе пункта Найти все ссылки…

Панель инструментов

Первая выделенная группа элементов – это элементы IntelliSence, с которыми мы уже познакомились. Вторая пиктограмма в верхнем ряду – добавление… Вторая группа – это инструменты для работы с кодом: выделяете кусок кода и…  

Лабораторная работа № 1

Программирование линейных вычислительных процессов

Цель работы

Ознакомление с правилами записи арифметических выражений, с операторами ввода-вывода.

Пояснение к работе

Каждый оператор языка С++ обязательно заканчивается точкой с запятой. Этот символ не отделяет операторы друг от друга, а является неотъемлемой… Действие составного оператора заключается в последовательном выполнении всех… Арифметическим выражением в языке С++ называется совокупность операндов, знаков арифметических операций и круглых…

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

Типы операндов в порядке убывания их размеров:

При присваивании производится преобразование типа правого операнда к типу левого операнда.

Пример: 1

int a=5;

char сh = '0';

float z = 50.21;

double t = ch/a+z;

cout<<"t ="<<t;

Результат:

t = 59.21

Преобразование типов в этом примере производится следующим образом. Операнд ch преобразуется к типу int операнда a,результат деления ch на a преобразуется к типуfloat операнда z. Затем в результате присваивания все выражение примет тип double.

Проверим полученный результат. Символ 0имеет код 48, в результате операции деления мы должны получить 9.6, а все выражение должно быть равно 59.81. Результаты не совпали. Дело в том, что результат деления двух целых операндов (ch и a) также будет целым, т. е. остаток 0.6 отбрасывается, отсюда и конечный результат. Чтобы эту проблему решить, надо использовать явное преобразование типов.

Явное преобразование типов может быть осуществлено посредством операции приведения типов, которая имеет формат

static_cast<тип_к которому_привести> (выражение).

Ключевое слово static_cast означает, что приведение выполняется статически, т. е. при компиляции программы. Результат этой операции – преобразование результирующего значения выраженияв тип, указанный в угловых скобках. Выражение может быть любым – от единственной переменной до сложнейшего составного оператора.

Решение проблемы для приведенного примера: t = ch/ static_cast <float>(a)+z;

Операции ввода и вывода

В языке С++ разработан способ ввода/вывода с использованием так называемых потоков ввода и вывода cinи cout. Для того чтобы использовать эти стандартные потоки, необходимо включить заголовочный файл <iostream>. Для ввода используется операция >>, для вывода – операция <<. Компилятор определяет тип вводимой/выводимой переменной и соответствующим образом форматирует ее.

#include <iostream>

using namespace std;

cin>>x; //Ввод значения в переменную х из стандартного потока cin

cin>>x>>y; // Ввод двух переменных

cout << "x = " << x << "ny = " << y << endl; // Функция endl осуществляет перевод строки

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

Формат задает место и форму вводимого/выводимого значения. Для управления форматом используются так называемые манипуляторы. Это функции, которые изменяют способ управления выводом данных. Для использования манипуляторов необходимо включить заголовочный файл <iomanip>.

Изменения, сделанные всеми манипуляторами, кроме setw, остаются в силе до отмены. Действие манипулятор setw распространяется только на одно вводимое/выводимое значение (табл. 1.1).

Таблица 1.1

Манипулятор Описание
fixed Для вещественных чисел используется фиксированный формат
internal Знак выравнивается по левому краю, а само число – по правому краю
left Выравнивание по левому краю
scientific Для вещественных чисел используется научный формат (экспотенциальный)
setfill(c) Задает символ для заполнения. По умолчанию используется пробел
setprecision() Задает количество цифр справа от десятичной точки
setw(n) Устанавливает минимальное количество символов, используемых для вывода значения. Если значение представляется меньшим количеством символов, остальные позиции заполняются символом, установленным с помощью манипулятора setfill. Выравнивание задается манипуляторами left, right и internal. Чтобы установить поведение по умолчанию (столько символов, сколько необходимо), нужно использовать манипулятор setw с параметром 0
showpoint Вывод и целой, и дробной частей вещественного числа, даже если дробная часть равна 0
showpos Вывод знака перед положительным числом

Пример 2

#include <iostream

#include<iomanip>

using namespace std;

void main ()

{ setlocale(LC_ALL,"rus_rus.1251");

int m, n, x;

double y;

cout<<"Введите значение двух целых переменных"<<endl;

cin >> m >> n;

cout<<"m="<<setw(5) <<m<<"nn="<<setw(7) <<n<<endl;

cout<<"Введите отрицательное целое число "<<endl;

cin >> x;

cout<<setfill('0')<<setw(10) <<internal<<x<<endl;

cout<<"Введите вещественное число 3.1415926 "<<endl;

cin >> y;

cout<<setfill('') <<fixed<<setw(7) <<setprecision(2) <<y<<endl;}

Результат:

Комплексные числа

Комплексным числом называется выражение вида a + jb, где a и b – любые действительные числа, j2 = –1, j – это специальная величина, называемая… Рис. 1.1. Геометрическая интерпретация комплексного числа

Порядок выполнения работы

2. Используя формулу для смешанного соединения сопротивлений, найти выражение для сопротивления z между узлами а и б схемы, изображенной на рис.…     Рис. 1.2. Смешанное соединение сопротивлений

Варианты заданий

Вариант 1

Даны x, y. Вычислить .

Вариант 2

Даны x, z. Вычислить .

Вариант 3

Даны x, y, z. Вычислить .

Вариант 4

Даны x, y. Вычислить .

Вариант 5

Даны x, y. Вычислить .

Вариант 6

Даны x, y, z. Вычислить .

Вариант 7

Даны x, y. Вычислить .

Вариант 8

Дано z. Вычислить .

Вариант 9

Даны x, y. Вычислить .

Вариант 10

Дано z. Вычислить .

Вариант 11

Даны x, y. Вычислить .

Вариант 12

Дано z. Вычислить .

Вариант 13

Даны x, y, z. Вычислить .

Вариант 14

Дано x. Вычислить .

Вариант 15

Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет и угол между найденным катетом и гипотенузой.

Вариант 16

Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.

Вариант 17

Вычислить период колебания маятника длиной l.

Вариант 18

Найти площадь кольца, внутренний радиус которого равен 20, а внешний – заданному числу R (R > 20).

Вариант 19

Найти площадь равнобочной трапеции с основаниями a и b (a > b) и углом a при большем основании.

Вариант 20

Дано действительное число x. Не пользуясь никакими другими арифметическими операциями, кроме умножения, сложения и вычитания, вычислить 2x4 3x3 + 4x2 5x+ 6. Разрешается использовать не более четырех умножений и четырех сложений и вычитаний.

Вариант 21

Даны действительные числа c, d, x1, x2. Вычислить

.

Вариант 22

Найти сумму членов арифметической прогрессии a, a + d, , a + (n–1)d; a, d, n задать с клавиатуры компьютера.

 

Вариант 23

Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.

Вариант 24

Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.

Вариант 25

Дано действительное число a. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить a8 за 3 операции.

Вариант 26

Дано действительное число h. Вычислить

.

Вариант 27

Дано действительное число h. Вычислить

.

Вариант 28

Дано действительное число h. Вычислить .

Вариант 29

Вычислить .

Вариант 30

Дано действительное число x. Вычислить .

Контрольные вопросы

1. Дайте определение арифметического выражения.

2. Каков порядок выполнения арифметического выражения?

Перевести с С++ на математический язык: A/B*C , A/B/C.

Не привлекая компьютер, рассчитать n:

int y=21,a=2,b=3,n; float c=4; n= -a++*b/a*a/c*b;

3. Каким образом можно вывести информацию на экран?

Число 1.414213562 было выведено на экран в виде xxxx1.4142. Как при этом должен выглядеть оператор вывода?

4. Каков диапазон представления констант различных типов? Сколько значащих десятичных цифр могут содержать константы разных типов?

6. Как организовать пробел, перевести строку при выводе информации?

7. Каков смысл во вводе чисел с клавиатуры при исполнении программы?

9. Как объявить комплексную переменную двойной точности?

10. Как ввести с клавиатуры комплексную переменную z = 1.414 + 2j?

 

 
 

 

Лабораторная работа № 2

Программирование условных операторов и операторов цикла

Цель работы

1. Изучение методов организации разветвляющихся и циклических вычислительных процессов.

2. Приобретение навыков программирования разветвляющихся и циклических вычислительных процессов при работе с одномерными массивами.

Пояснения к работе

Основные сведения об условных операторах

Во многих случаях последовательность выполнения операторов программы не может быть однозначно определена до начала расчетов. Часто выбор следующего действия зависит от значения некоторого промежуточного результата. Подобный вычислительный процесс называется разветвляющимся.

Простейшим примером разветвляющегося процесса может служить, например, вычисление такой функции:

В структурную схему алгоритма вычислений включается логический блок, обеспечивающий разветвление по двум возможным направле­ниям.

В тексте программы такому алгоритму соответствует условный оператор:

if(условие)

оператор_1;

else

оператор_2;

Если условие (или выражение, записанное вместо него) истинно, то выполняется оператор_1, в противном случае выполняется оператор_2. В качестве любого оператора может быть записан составной оператор, т. е. блок. Конкретно для нашего случая оператор запишется так:

if(x <= 0)

y = 0;

else

y = x;

Часто, но не всегда, условие представляет собой два арифметических выражения, соединенных одним из знаков операции отношения:

a = = ba тождественно равно b;

a != ba не равно b;

a > ba больше b;

a >= b a больше или равно b;

a < b a меньше b;

a <= ba меньше или равно b.

Такие условия позволяют сравнивать два операнда. Результат проверки истинности условия – это логическая переменная, которая может принимать одно из двух значений (true – false, т. е. истина – ложь). В языке С++ эти значения адекватны целым числам: истина – единица, ложь – нуль. Поэтому язык С++ разрешает использовать в качестве условий одиночные арифметические выражения (АВ) и даже константы. При этом нулевое значение АВ, независимо от типа – целое или вещественное, трактуется как логическое «ложь», а любое ненулевое – как «истина». Например, вычисление значения функции y = sin(x)/x может быть записано так:

x = ...;

if(x)

y = sin(x)/x;

else

y = 1.0;

Полезно подумать, почему для вычисления использован условный оператор, а не простое присваивание вида y = sin(x)/x.

Допустимо записывать короткий вариант условного оператора – без ветви else. Такой оператор при ложности условия не выполняет никаких действий. Запишем фрагмент реализации разветвления с помощью короткого условного оператора. Это вполне возможно, несмотря на отсутствие у него ветви «else»:

y = 0;

if(x > 0)

y = x;

Обратите внимание на характерный прием: сначала переменной y произвольно присваивается конкретное значение, а потом проверяется, угадали мы его или нет. Если отношение x > 0 окажется истинным, то значение y перевычисляется.

Условия могут быть достаточно сложными логическими выражениями. В языке С++ есть три стандартные логические операции, обозначаемые следующими символами:

&& – операция И (AND);

|| – операция ИЛИ (OR);

! – операция НЕ (NOT);

Предупреждение. Логические операции И, ИЛИ не следует путать с одноименными побитовыми операциями, которые обозначаются одиночными символами & и | соответственно.

Приведем два примера их использования:

a>b && a<c a>0 || b >0 || !(a= =b)

Выполнение логической операции "И" (&&) производится так. Последовательно слева направо вычисляются значения всех операндов. Как только будет найден нулевой операнд, дальнейшие вычисления прекращаются, и все логическое выражение получает значение нуль (т. е. "ложь"). Если ни один из операндов не оказался нулевым, логическое выражение получает значение “единица”, которое трактуется как "истина".

Похожим образом выполняется логическая операция "ИЛИ" (||). Последовательное вычисление операндов досрочно прекращается, как только будет найден ненулевой операнд, в результате чего все логическое выражение считается истинным и получает значение “единица”. Нулевым оно будет лишь тогда, когда все операнды также будут иметь нулевое значение.

Вычисление выражений, содержащих только логические операции, прекращается, как только удается однозначно определить результат.

Операция логического отрицания "!" может стоять перед целой (или булевой) переменной, изменяя тем самым ее логическое значение на противоположное, т. е. ненулевое значение – на нуль, а нуль – на единицу. Результат выполнения операции имеет тип int.

Например:

int k = 0;

if(!k)

{

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

}

Наиболее часто логические выражения играют роль условий, проверяемых при разветвлении вычислительного процесса или его прекращении:

if(a>b || c>d || e>f) .....

Структурная схема циклического алгоритма

В подавляющем большинстве программ встречаются группы операторов, вычисление по которым многократно повторяется. Такие повторяемые участки называются циклами, а сам вычислительный процесс – циклическим. Обычно цикл выполняется для ряда последова­тельных значений некоторой переменной, которая называется параметром (реже счетчиком) цикла. В зависимости от текущего значения параметра цикла, во-первых, могут изменяться численные значения обрабатываемых в цикле переменных, и, во-вторых, в определенный момент цикл заканчивается.

Для записи циклических алгоритмов в языке Си существует три различных оператора цикла. Каждый их них более удобен в определенной ситуации хотя в принципе они практически взаимозаменяемы.

Оператор цикла for

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

for(выражение_1; выражение_2; выражение_3)

{

тело цикла

}

В этой записи:

выражение_1 – задает начальное значение параметра цикла;

выражение_2 – условие продолжения цикла;

выражение_3 – действие, выполняемое чаще всего над параметром цикла после каждой итерации тела цикла перед очередной проверкой условия продолжения.

Алгоритм суммирования членов ряда S = 1 + 1/2 + 1/3 + 1/4 +
+ ... + 1/9 = может быть записан на языке Си очень просто:

double s = 0.; int k;

for(k = 1; k <= 9; k++)

s += 1./k;

Обратите особое внимание на вещественнуюединицу в числителе дроби. Если записать последний оператор как s=s+ 1/k, то расчет будет неверен, поскольку деление будет производиться согласно арифметике целых чисел – результат деления тоже будет целым числом. Поскольку числитель дроби 1/kдля всех членов ряда, кроме первого, меньше знаменателя, для них результат деления дает нуль. Поэтому итоговое значение величины s будет равно значению только первого члена ряда, т. е. единице. По этой же причине тип переменной s выбран не int, а double, чтобы не терять десятичные знаки.

Любое из трех выражений в заголовке цикла for независимо от других может быть опущено, но все символы "точка с запятой" обязательно сохраняются. Так, оператор

for(;;)

{ тело цикла }

описывает бесконечный цикл. Выход из такого цикла обычно производится оператором break, который выполняется при истинности некоторого условия, проверяемого внутри тела цикла, например:

int k = 10;

for(;;)

{ .........

k--;

if(k) break;

}

Если опущено выражение_2, то считается, что оно истинно. В этом случае также получается бесконечный цикл.

Работа оператора for описывается такой последовательностью шагов:

1. Вычисляется выражение_1 (если оно присутствует).

2. Вычисляется выражение_2 (если оно присутствует). Если получается нуль (ложь), то цикл завершается.

3. Выполняется тело цикла.

4. Вычисляется выражение_3 (если оно присутствует).

5. Переход к п. 2.

Любое выражение, записываемое в заголовке цикла, может быть довольно сложным и даже представлять собой последовательность нескольких выражений, соединенных операцией "запятая":

for(i=0; i<10; cout<<"n"<<i, i+=2);

Приведенный фрагмент цикла обеспечивает вывод на экран чисел 0, 2, 4, 6, 8 "столбиком".

Предупреждение. Параметр цикла нельзя принудительно изменять внутри цикла посредством оператора присваивания, но его можно (и часто весьма удобно) использовать как простую переменную, например, как индекс элемента массива.

Оператор цикла while

Цикл for всегда можно заменить эквивалентной записью цикла while(...):

выражение_1;

while(выражение_2)

{

тело цикла;

выражение_3;

}

Общий вид записи оператора:

while(выражение)

{ тело цикла }

Действие такого оператора заключается в многократном выполнении блока, образующего тело цикла. Этот процесс продолжается до тех пор, пока выражение, записанное в заголовке, не обратится в нуль, т. е. не станет ложным. Проверка его истинности производится каждый раз перед очередным выполнением тела цикла. Поэтому, если записанное в заголовке выражение изначально равно нулю, цикл не выполняется вообще. Тело цикла может составлять и единственный оператор, тогда фигурные скобки не обязательны.

Наш пример суммирования девяти членов ряда можно при помощи оператора while записать так:

double s = 0.; int k = 1;

while(k<=9)

{

s += 1./k;

k++;

}

Заметьте, что в теле цикла обязательно должен быть оператор, влияющий на значение проверяемого выражения, иначе выполнение цикла никогда не прекратится.

Подобный цикл обычно записывают короче, хотя и менее наглядно:

while(k<=9)

s += 1./k++;

Если выражение в заголовке оператора всегда истинно, то получается бесконечный цикл:

while(1)

{.......}

Такая конструкция имеет право на существование и используется довольно часто. Как правило, такой цикл прекращают при выполнении некоторого условия, которое записывается и проверяется внутри тела цикла. Для этой цели используется условный оператор или переключатель.

Запишем наш пример, используя бесконечный цикл:

int k=1;

double s = 0.;

while(1)

{

s += 1./k++;

if(k > 9) break;

}

Выполнение оператора break приводит к немедленному прекращению цикла и передаче управления следующему оператору программы, записанному сразу после оператора цикла.

Итак, цикл while завершается в следующих случаях:

· обратилось в нуль выражение, записанное в заголовке;

· в теле цикла встретились операторы break, exit;

· в теле цикла выполнился оператор return;

· в случае аварийного завершения программы (например, деление на ноль).

Оператор цикла do...while

Общий вид такого оператора цикла:

do

{ тело цикла }

while (условие);

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

Оператор continue

Может использоваться во всех трех типах циклов. Выполнение оператора continue в теле цикла вызывает досрочное прекращение текущей итерации и переход к следующей. Это равносильно безусловному переходу на закрывающую скобку тела цикла.

Следующий фрагмент обеспечивает ввод цифр вплоть до нажатия клавиши Enter, игнорируя нажатие остальных клавиш.

while((ch=getch()) != 'r')

{

if(!isdigit(ch))

continue;

putchar(ch);

}

Можно было обойтись и без оператора continue. Достаточно было сменить проверяемое условие на противоположное:

while((ch=getch()) != 'r')

if(isdigit(ch))

putchar(ch);

Понятие массива. Его объявление и инициализация

Простейший одномерный массив можно в общем случае объявить так: class type name[size]; Здесь class – желаемый класс памяти, type – тип элементов массива, name – имя массива, size – количество элементов в…

Связь массивов и указателей

Указатель – это переменная, которая хранит адрес другой переменной определенного типа. Фактически это просто адрес одного байта оперативной памяти,… · получить доступ к содержимому любой ячейки памяти; · создать новые объекты (переменные, массивы, структуры и т. п.) в процессе выполнения программы путем динамического…

Порядок выполнения работы

1. Составить схему алгоритма и предъявить ее преподавателю для проверки.

2. Написать программу двумя способами: с помощью указателей и без нее.

3. Отладить программу и получить численные результаты.

4. Оформить отчет по работе, обратив особое внимание на выводы. Подготовиться к защите, ориентируясь на контрольные вопросы. Защитить работу.

 

Варианты заданий

Вариант 1

Дан целочисленный массив A [15]. Найти в нем два наименьших элемента.

Вариант 2

По заданному вещественному x вычислить значение по следующей итерационной формуле: yi+1 =0.5(yi + x/yi) , y0 = x. Итерации прекратить при |yi+1 – yi| < 2×10-5.

Вариант 3

Дано положительное число a. Найти k-е число Фибоначчи такое, что xk–1 £ a < xk. Числа Фибоначчи: x1 = x2 = 1, xk = xk-2 + xk-1, k = 3, 4, …

Вариант 4

Найти количество трехзначных чисел в массиве A[12], кратных 15, но не кратных 30. Вывести их на экран монитора.

Вариант 5

Сформировать целочисленный массив A[10], элементами которого являются случайные числа из диапазона [–5; 20]. Найти среди его элементов два, разность которых имеет наибольшее значение.

Вариант 6

Вычислить, не используя функцию pow(), значения функции z(x, m) =
= xm sinm(x) для значений аргументов: x от –1.1 до 0.3 с шагом 0.2; m от 1 до 5 с шагом 1.

Вариант 7

Произведено измерение роста 15 студентов. Данные записаны в массиве ROST. Разместить в массиве NR номера тех студентов, чей рост меньше 180 см и подсчитать число таких студентов.

Вариант 8

Сформировать массив IM[100], элементами которого являются числа 1, –1, 2, –2, …, 50, –50. Сформировать массив IN[50], элементами которого являются числа 1, 3, 5, …, 49, 50, 48, 46, …, 2. Вывести их на экран монитора.

Вариант 9

По заданному вещественному числу x вычислить значение по следующей итерационной формуле: yi+1= 0.5(yi + 3x/(2yi2 + x/yi)), y0 = x. Итерации прекратить при |yi+1 – yi| < 10–5.

Вариант 10

Сформировать целочисленный массив A[15], элементами которого являются случайные числа из диапазона [–8; 10]. Найти среди его элементов два, модуль разности которых имеет наибольшее значение.

Вариант 11

Вычислить значение функции для значений аргументов x от 0.2 до 0.6 с шагом 0.1; y от 0 до 0.4 с шагом 0.05.

Вариант 12

Сформировать целочисленный массив IM[17], элементами которого являются случайные числа из диапазона [3; 42]. Подсчитать сумму элементов массива, значения которых кратны восьми.

Вариант 13

Дан массив A[15]. Найти пару соседних элементов, наиболее близко расположенных друг к другу, т. е. для которых минимален модуль разности R = |A[i+1] – A[i]|.

Вариант 14

Дан массив X[13]. Найти сумму элементов массива, предшествующих первому отрицательному элементу. Если такового нет, то просуммировать все элементы.

Вариант 15

Сформировать квадратную матрицу A[15][15] следущего типа:

Вариант 16

Сформировать массив IM[100], элементами которого являются числа 1, 100, 2, 99, …, 50, 51.

Вариант 17

По заданному вещественному x вычислить значение по следующей итерационной формуле: yi+1 = 1/3*(2yi + x/yi2), y0 = x. Итерации прекратить при |yi+1 – yi| < 10–5.

Вариант 18

Сформировать целочисленный массив A[20], элементами которого являются случайные числа из диапазона [–2; 3]. Определить, сколько раз в нем встречались два подряд идущих нулевых элемента.

Вариант 19

Дан целочисленный массив C[12]. Сформировать матрицу A, первая строка которой будет содержать элементы массива с четными номерами, а вторая – с нечетными.

Вариант 20

Сформировать вещественный массив A1[15], элементами которого являются случайные числа из диапазона [–2; 3]. Переслать из него в массив A2 все элементы, значения которых больше –1.8 и меньше 2.7

Вариант 21

Даны вещественные числа A и B (A < B). Найти первый член последовательности an = (–1)n(1 + 1/2 + … + 1/n), который не принадлежит
[A; B].

Вариант 22

В заданном целочисленном массиве распечатать те элементы, порядковые номера которых – числа Фибоначчи.

Вариант 23

В заданном целочисленном массиве определить количество перемен знаков.

Вариант 24

Дан массив X[20]. Перепечатать в массив Y элементы массива X с нечетными номерами, а в массив Z – элементы массива X, значения которых кратны пяти.

Вариант 25

Даны вещественные числа A, B, C, A1, B1, C1. Выяснить взаимное расположение прямых Ax + By = C и A1x + B1y = C1. Если прямые пересекаются, напечатать координаты точки пересечения.

Вариант 26

Даны вещественные числа A < 0 и B > 0. Найти первый член последовательности , который не принадлежит отрезку [A; B].

Вариант 27

Дан целочисленный массив A[5]. Определить, образуют ли его элементы неубывающую последовательность.

Вариант 28

Среди 10 введенных чисел xi распечатать те числа, которые удовлетворяют условию |xi| < i2. Если таких чисел нет – выдать сообщение.

Вариант 29

Дана матрица B[3][6]. Найти сумму элементов каждого столбца матрицы. Сформировать массив D из найденных сумм.

Вариант 30

Дан вещественный массив X[16] и вещественное число N. Вывести на экран монитора все элементы массива, которые одного знака с числом N.

Контрольные вопросы

1. Объясните работу условного оператора.

2. Какие операторы цикла вам известны? Разъясните принцип их работы.

3. Из каких соображений выбирается переменная, играющая роль параметра цикла?

4. Что такое массив?

5. Дайте определение указателю.

6. Поясните связь массивов и указателей.

7. Назначение операторов break и continue.

8. Каков результат выполнения фрагмента? Приведите пример.

for(i=1,n=0;i<10;i++) if(a[i]>a[n]) n=i;

9. Каков результат выполнения фрагмента? Приведите пример.

for(i=0,n=-1;i<10;i++)

{ if(a[i]<=0) continue; if(n== –1||a[i]<a[n]) n=i; }

10. Каков результат выполнения фрагмента? Приведите пример.

do

{ found=0;

for(i=0;i<n-1;i++)

if(A[i]>A[i+1]) { int cc; cc=A[i];A[i]=A[i+1]; A[i+1]=cc; found++; }

}while(found!=0);}

 

 

 
 

 

Лабораторная работа № 3

Вычисление сумм и произведений

Цель работы

Закрепление навыков стандартных приемов программирования.

Порядок выполнения работы

1. Составить схему алгоритма и предъявить ее преподавателю для проверки.

2. Написать программу двумя способами: с помощью указателей и без нее.

3. Отладить программу и получить численные результаты.

4. Оформить отчет по работе, обратив особое внимание на выводы. Подготовиться к защите, ориентируясь на контрольные вопросы. Защитить работу.

Варианты заданий

Вариант 1

Дан массив a из n действительных чисел. Используя указатели, вычислить .

Вариант 2

Дан массив a из n действительных чисел. Используя указатели, вычислить .

 

Вариант 3

Дан массив a из n действительных чисел. Используя указатели, вычислить .

Вариант 4

Дан массив a из n действительных чисел. Используя указатели, вычислить .

Вариант 5

Дан массив a из n действительных чисел. Используя указатели, вычислить .

Вариант 6

Дан массив a из n действительных чисел. Используя указатели, вычислить .

Вариант 7

Дан массив a из n действительных чисел. Используя указатели, вычислить .

Вариант 8

Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид

{a0, a0 ++ a1, …, a0 + a1 + … + an–1}.

Вариант 9

Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид

{a02, a0 a1, a0a2, …, a0 an–1}.

Вариант 10

Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид

{|a0|, |a0 + a1|,…, |a0 + a1 ++ an-1|}.

Вариант 11

Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид

{a0, –a0 a1, a0 a1a2,…, (–1)n a0 a1an-1}.

Вариант 12

Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид

{–a0, a1, –a2, …, (–1)n an-1}.

Вариант 13

Дан массив a из n действительных чисел. Используя указатели, заполнить массив B, элементы которого имеют вид

{a0 + 1!, a1 + 2!,…, an-1 + n!}.

Вариант 14

Задан массив x[n]. Используя указатели, заполнить его по закону
x0 = 0, x1 = 5/8, xi = xi-1/2+3xi-2/4 и найти сумму элементов массива.

Вариант 15

Задан массив x[n]. Используя указатели, заполнить его по закону
x0 = 1, x1 = 0,3, xi = (i + 1)xi-2 и найти минимальный элемент массива.

Вариант 16

Задан массив x[n]. Используя указатели, заполнить его по закону
x0 = x1 = x2 = 1, xi = (i + 3)(xi-1 – 1) + (i + 4)xi-3 и найти произведение элементов массива.

Вариант 17

Задан массив a[m]. Известно, что a0 > 0 и что среди элементов массива есть хотя бы один отрицательный. Пусть первый отрицательный элемент an. Получить .

Вариант 18

Задан массив a[m]. Известно, что a0 < 0 и что среди элементов массива есть хотя бы один положительный. Пусть первый положительный элемент an. Получить .

Вариант 19

Задан целый массив a[m]. Известно, что среди элементов массива есть хотя бы один элемент, равный –2. Пусть этот первый элемент an. Получить среднее арифметическое a0, …, an-1.

Вариант 20

Задан массив a[m]. Известно, что все его элементы > 0. Получить среднее геометрическое a0, …, am-1.

Вариант 21

Задан целый массив a[m]. Найти .

Вариант 22

Задан целый массив c[m]. Найти .

Вариант 23

Задан массив a[m]. Известно, что a0 > 0 и что среди элементов массива есть хотя бы один отрицательный. Пусть первый отрицательный элемент an. Вычислить (–1)n an.

Вариант 24

Задан массив a[m]. Известно, что a0 < 0 и что среди элементов массива есть хотя бы один положительный. Пусть первый положительный элемент an. Вычислить n + an.

Вариант 25

Задан целый массив a[m]. Известно, что среди элементов массива есть хотя бы один элемент, равный 10. Пусть первый этот элемент an. Вычислить |a0an|.

Вариант 26

Задан целый массив k[12]. Найти его минимальный элемент. Вычислить сумму элементов, следующих за ним.

Вариант 27

Задан целый массив r[10]. Найти его максимальный элемент. Вычислить произведение элементов, стоящих до него.

Вариант 28

Задан целый массив q[11] и целое число gÎ[0; 11). Найти среднее арифметическое всех элементов массива, кроме q[j].

Вариант 29

Задан вещественный массив a[15]. Изменить все его элементы, кроме первого и последнего, по формуле , используя лишь старые значения элементов массива.

Вариант 30

Задан вещественный массив c[11] и вещественное g. Найти такой индекс i элемента массива, чтобы |cig| был минимален.

Контрольные вопросы

1. Что является адресом одномерного массива?

2. Как записываются индексы ячеек массива с помощью указателя?

3. Как находится сумма элементов одномерного массива?

4. Как находится произведение элементов одномерного массива?

5. Чем отличаются выражения *(p++) и (*p)++, если p – указатель?

6. Как поменять местами значения в ячейках с одинаковыми индексами двух одномерных массивов?

 

 

 
 

 

 

Лабораторная работа № 4

Программирование операций с матрицами

Цель работы

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

Пояснения к работе

Напомним, что массив можно определить как совокупность величин одного типа, обозначаемых общим именем и размещенных в смежных ячейках памяти. Каждый… Пример объявления для двумерного массива: int dvum [2][3]. Эта запись означает, что объявляется массив целого типа, содержащий две строки и три столбца.

Порядок выполнения работы

1. Составить программу, соответствующую заданному варианту.

2. Ввести текст программы в ЭВМ, отладить программу на тестовых примерах.

3. Результаты работы (отлаженный код программы, результаты счета) предъявить преподавателю.

4. Оформить отчет и защитить работу, убедившись в своей готовности по контрольным вопросам.

Варианты заданий

Вариант 1

Задана целая матрица X[3][4]. Вычислить минимальный элемент каждого столбца этой матрицы.

Вариант 2

Задана комплексная матрица Y[4][4]. Найти сумму элементов на ее побочной диагонали.

Вариант 3

Задана вещественная матрица Z[3][2]. Вычислить сумму ее положительных элементов и произведение отрицательных.

Вариант 4

Задана целая матрица T[3][4]. Вычислить произведение элементов, стоящих до первого отрицательного, в каждой строке матрицы. Считать, что в каждой строке присутствует отрицательный элемент.

Вариант 5

Задана вещественная матрица Q[5][2]. Вычислить сумму ее элементов, выделенных на рис. 4.2 серым цветом.

   
   
   
   
   

Рис. 4.2. Элементы матриц

Вариант 6

Задана целая матрица E[5][5]. Найти минимальный элемент среди элементов над главной диагональю (не включая саму диагональ).

Вариант 7

Задана вещественная матрица D[2][5]. Вычислить сумму элементов, стоящих до первого положительного, в каждом столбце матрицы. Считать, что в каждом столбце присутствует положительный элемент.

Вариант 8

Задана целая матрица C[4][4]. Найти минимальный элемент ее побочной диагонали.

Вариант 9

Задана комплексная матрица B[4][3]. Вычислить произведение ее элементов, выделенных на рис. 4.3 серым цветом.

     
     
     
     

Рис. 4.3. Элементы матриц

Вариант 10

Задана вещественная матрица A[4][2]. Найти максимальный элемент каждой строки этой матрицы.

Вариант 11

Задана комплексная матрица K[4][4]. Найти сумму элементов под главной диагональю матрицы (не включая саму диагональ).

Вариант 12

Задана целая матрица I[5][3]. Найти количество элементов матрицы, попадающих в интервал [–3; 8].

Вариант 13

Задана целая матрица R[4][5]. Найти произведение ее элементов, кратных трем, но не кратных пяти.

Вариант 14

Задана целая матрица L[4][2]. Поменять в ней местами первую и вторую строки.

Вариант 15

Задана вещественная матрица M[3][4]. Поменять в ней местами первый и третий столбцы.

Вариант 16

Задана целая матрица A[5][5]. Переписать в массив B[25] элементы матрицы A по спирали по часовой стрелке, начиная с элемента, первого в строке и столбце (рис. 4.4).

® ® ® ® ®
­ ® ® ® ¯
­ ­ ® ¯ ¯
­ ¬ ¬ ¯ ¯
¬ ¬ ¬ ¬ ¯

Рис. 4.4. Принцип формирования массива В [25]

Вариант 17

Задана целая матрица P[4][4]. Вычислить сумму ее элементов, выделенных на рис. 4.5 серым цветом.

       
       
       
       

Рис. 4.5. Элементы матрицы

Вариант 18

Задана вещественная матрица G[3][4]. Вычислить произведение ее элементов, выделенных на рис. 11 серым цветом.

       
       
       

Рис. 4.6. Элементы матрицы

Вариант 19

Задана вещественная матрица W[5][3]. Увеличить в два раза ее элементы, расположенные в четных строках. Измененную матрицу W выдать на экран монитора.

Вариант 20

Задана комплексная матрица OC[4][3]. Вычислить сумму ее элементов, выделенных на рис. 4.7 серым цветом.

     
     
     
     

Рис. 4.7. Элементы матрицы

Вариант 21

Задана целая матрица X[8][8]. Вычислить произведение ее элементов, выделенных на рис. 4.8 серым цветом.

               
               
               
               
               
               
               
               

Рис. 4.8. Элементы матрицы

Вариант 22

Задана вещественная матрица Y[3][4]. Вычислить произведение ее элементов в тех столбцах, где первый элемент > 2,4.

Вариант 23

Задана целая матрица E[4][3]. Если в ней встречаются элементы, кратные трем, то поменять их на пять. Измененную матрицу E вывести на экран монитора.

Вариант 24

Задана вещественная матрица C[5][3]. Найти в ней минимальный элемент и поменять его местами с элементом, первым в строке и столбце. Измененную матрицу C вывести на экран монитора.

Вариант 25

Задана комплексная матрица K[3][5]. Найти произведение ее элементов в каждом столбце.

Вариант 26

Задана целая матрица M[4][5]. Переписать в матрицу B[4][5] сначала все положительные элементы, потом отрицательные. Перезапись осуществлять по строкам.

Вариант 27

Задана целая матрица B[5][3]. Определить количество элементов матрицы, кратных двум, но не кратных четырем.

Вариант 28

Задана целая матрица CH[4][5]. Найти минимальный элемент в каждом столбце матрицы CH.

Вариант 29

Сформировать и вывести на экран монитора матрицу X[4][5], где первые два элемента первого столбца равны единице, а остальные элементы образуют числа Фибоначчи (Fi = Fi-1 + Fi–2, i = 3, 4, 5…), записанные по столбцам.

Вариант 30

Сформировать и вывести на экран монитора матрицу

.

Контрольные вопросы

1. Дайте определение матрицы и следа квадратной матрицы.

2. Что называется суммой и разностью двух матриц?

3. По какому правилу определяются элементы результирующей матрицы при умножении?

4. Как объявляется и инициализируется массив в программах на языке С++?

5. Как нумеруются элементы массива в языке С++? В каком порядке элементы массива располагаются в памяти?

6. Что такое указатель в языке С++? Как он объявляется, инициа­лизируется и применяется?

7. Как осуществляется передача данных из одной функции в другую?

8. Какие требования предъявляются к оформлению схем алгоритмов?

9. Напишите программу для нахождения суммы (произведения) всех элементов квадратной матрицы порядка n.

10. Какими способами можно вывести элементы матрицы на экран?

11.

 
 

Дайте пояснения по всем операторам написанных вами программ.

– Конец работы –

Используемые теги: радиосвязь, Радиовещание, Телевидение, дневного, отделения0.081

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: И Радиосвязь, радиовещание и телевидение дневного отделения

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Е.Н. Богданов Логика Учебно-методический комплекс Для студентов дневного отделения
Кафедра философии... Е Н Богданов...

Программа, методические рекомендации для студентов дневного и заочного отделений по Демографии
С В Миронова Программа методические рекомендации для студентов дневного и заочного... Содержание...

Экзаменационные билеты-тесты по дисциплине «Общая теория статистики» для студентов дневного отделения II курса всех специальностей
билеты тесты по дисциплине Общая теория статистики для студентов дневного отделения II курса всех специальностей... ответы выделены жирным шрифтом... ТЕСТ...

Советское телевидение и радиовещание
Руководство радиовещанием и телевидением в СССР осуществляет Государственный комитет Совета Министров СССР по телевидению и радиовещанию… Гостелерадио СССР издаёт еженедельник "Говорит и показывает Москва", журналы… Гостелерадио СССР имеет Всесоюзный НИИ телевидения и радиовещания, занимающийся разработкой новой техники и…

Методические указания по прохождению практики Для студентов дневного и заочного отделений специальности 060800 -Экономика и управление на предприятии сферы сервиса
Федеральное агенство по образованию... Санкт Петербургский государственный университет... Сервиса и экономики...

Бабочки дневные
У дневных бабочек обычно более или менее длинные тонкие антенны (усики), заканчивающиеся булавовидным утолщением; у ночных видов антенны чаще всего… В состоянии покоя дневные бабочки складывают крылья, вертикально подняв их над… Хотя перечисленные признаки в общем типичны для дневных (булавоусых) и ночных (разноусых) чешуекрылых, существует…

Как делается реклама на телевидении в России
Например, ковбой «Мальборо» работает уже 50 лет. Если концепция дала хороший эффект, не надо ее часто менять. 2. Установив целевую группу своего… Все эти элементы имеют собственные требования и применения. Соблюдайте соотношение между ними, чтобы зритель воспринимал нужную вам идею. Картинка должна говорить сама за себя.…

Электроннолучевые технологии, телевидение
Главные части электроннолучевых установок - электронная пушка (источник, генератор электронов) и устройства (пластины, катушки и т.д.), создающие… Электронный луч может работать как идеальная металлургическая печь. Причем… Закалка таким способом режущего инструмента в несколько раз повышает срок его жизни. Не следует думать, что…

Технические нормы эксплутационной работы железной дороги и её отделений
ТНЭР является одним из важнейших инструментов управления, применяемых для рациональной организации перевозочного процесса на дорогах, отделениях и… Исходными данными для составления ТНЭР в МПС служат план перевозок, положение… Составлению ТНЭР предшествует анализ их выполнения за предшествующий период.

Телевидение КНР: сорок славных лет
В тот период в Китае начинается массовое производство телевизоров, которые из категории роскоши переходят в разряд просто товаров длительного… В настоящее время помимо Центрального телевидения 26 провинциальных и… Весной 1999 года сообщалось, что их число составляет около 2 тысяч (но еще весной 1998 года агентство Синьхуа называло…

0.031
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам
  • История рязанского телевидения Для миллионов людей телеэкран стал основным источником информации и познания окружающего мира. Это объясняется тем, что, являясь частью системы… На сегодняшний день телевидение прочно утвердилось на первом месте среди… Становление тележурналистики в Рязани тесно связано с общественной жизнью в стране.Строительство Рязанского областного…
  • Проблема эффективности воздействия телевидения Пользуясь специфическими методами воздействия на аудиторию, СМИ всегда оказывали влияние на массовое сознание. По мере увеличения количества разнообразных СМИ, появления новых влияние их… Это особенно актуально, если учесть, что СМИ сегодня являются мощным инструментом формирования общественного мнения и…
  • Особенности современной аудитории телевидения Телевизор стал частью нашей жизни. Это целый мир из маленького экрана.Мир, который вызывает столько споров и дискуссий. Мир, безусловно, интересный… Телевидение - что же в нем есть такого, что притягивает к нему? Все мы так или… Человек ХХ века живет в медиатизированном пространстве, которое составляет его новую среду обитания, реальность,…
  • Насилие на телевидении: угроза обществу или правда жизни? В настоящее время на телевидении транслируется великое множество различных телепередач, рекламных роликов, фильмов и все они не обходят стороной (и… Эта работа посвящена исследованию телевизионного эфира с целью выяснения общей… Дети в наше время воспитываются на боевиках и детективах, в также реалити-шоу, которые цензура «обходит стороной». Что…
  • Реконструкция газо-электросварочного отделения в ОАО "Тамбовский автотранспортный комбинат" Транспорт, обеспечивая производственные, экономические связи различных отраслей народного хозяйства, оказывает существенное влияние на размещение… Исходя из этого, возрастает роль транспорта, от деятельности которого, в… Вследствие большой народно-хозяйственной эффективности перевозок грузов и пассажиров автомобильным транспортом объем…