ЗАДАНИЕ № Доп-1. В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение. Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных. Найти произведение элементов, расположенных на главной диагонали.
Текст программы: //--------------------------------------------------------------------------- #include <vcl.h> #include <iostream.h> #include <conio.h> //--------------------------------------------------------------------------- int ProGlDiag(int, int**); void main() { int n, m, i, j, **a, rez;
int ProGlDiag(int c, int**x) { int i, p; p=1; for (i=0; i<c; i++) p*=x[i][i]; return p; }
Результат работы программы:
Задание № 3
Написать программу по созданию, добавлению (в начало, в конец), про-смотру (с начала, с конца) и решению поставленной в лаб. работе № 2 задачи для двунаправленных линейных списков. Удалить из созданного списка элементы с четными числами.
//--------------------------------------------------------------------------- //------------------- Создание первого элемента -------------------------------------------- void Create_Spis(Spis **b, Spis **e, int in) { t = new Spis; t -> index = in; t -> next = t -> prev = NULL; *b = *e = t; } //------------------- Добавление элемента в список ---------------------------------------- void Add_Spis(int kod, Spis **b, Spis **e, int in) { t = new Spis; t -> index = in; if(kod == 0){ t -> prev = NULL; t -> next = *b; (*b) -> prev = t; *b = t; } else { t -> next = NULL; t -> prev = *e; (*e) -> next = t; *e = t; } } //--------------------- Просмотр элементов списка ----------------------------------------- void View_Spis(int kod, Spis *t) { while(t != NULL) { Form1->Memo1->Lines->Add(t->index); if(kod == 0) t = t->next; else t = t->prev; } }
//--------------------------- Функция освобождения памяти -------------------------------- void Del_All(Spis **p) { while(*p != NULL) { t = *p; *p = (*p) -> next; delete t; } }
//-------------------- Удаление из списка элементов с четными числами ------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { t = start; Spis *key = NULL;
Написать и отладить программу поиска всех корней функции f(x) на отрезке [a, b] в соответствии с вариантом. Метод нахождения корня оформить в виде отдельной функции, алгоритм которой описать блок-схемой. а = -1 b = 3 Метод Ньютона Блок-схема алгоритма:
Написать и отладить программу вычисления интеграла указанным методом двумя способами – по заданному количеству разбиений n и заданной точности e (метод 1) (задания табл. 8.1). Реализацию указанного метода оформить отдельной функцией, алгоритм которой описать в виде блок-схемы. a = 0 b = 3 Метод трапеций
Список литературы 1. Батура М.П., Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Основы алгоритмизации и программирования. Язык Си : учеб. пособие. – Минск: БГУИР, 2007. 2. Основы программирования в среде С++ Builder: методические указания по выполнению контрольной работы по курсу «Основы алгоритмизации и программирования» для студентов 1 – 2-го курсов заочного отделения специальностей ЭВС и ПОИТ БГУИР. В 2-х частях. Часть 2. / Кривоносова Т.М. – Минск: БГУИР, 2010 – 83 с.: ил. 3. Стефан Р. Дэвис, С++ для «чайников», 4-е издание. : Пер. с англ.: - М. : Издательский дом «Вильямс», 2003. – 336 с.