Составление и отладка программы на языке Си
Из полученных массивов, А и В сформировать квадртаную матрицу S, размерность которой равна минимуму из рамзерностей A и B, а значение элементов вычесляется по формуле. Результаты тестирования программного продукта показали, что язык программирования Си действительно является, легок в реализации выполнения данных заданий. Контрольная работа представлена пояснительной запиской объёмом 17 листов, 4… Читать ещё >
Составление и отладка программы на языке Си (реферат, курсовая, диплом, контрольная)
Контрольная работа Составление и отладка программы на языке Си
Аннотация
Контрольная работа представлена пояснительной запиской объёмом 17 листов, 4 рисунка, с использованием литературных источников.
В контрольной работе представлена программа, написанная по средствам языка Си.
Для решения данного задания использовались:
— функция форматированного вводавывода;
— условный оператор if;
— параметрический оператор for;
В работе получен положительный результат решения данного задания.
1. Блок-схема решения задачи
2. Текст программы на языке Си
2. Результаты тестирования программы Заключение Список использованных источников
В данной работе проходило знакомство со средой программирования языка Си.
Причина актуальности языка Си заключается в том, что синтаксические конструкции многих других современных языков программирования, появившихся позднее Си, очень сильно напоминают синтаксис языка Си. Здесь речь идет о таких языках, как Java, C#, PHP и др. Еще один любимый и используемый многими язык C++ получен из Си с добавлением к нему средств объектно-ориентированного программирования. Таким образом, изучение языка Си может оказаться одной из первых ступенек на пути к постижению искусства программирования. Освоив его, можно смело приступать к освоению перечисленных языков, уже имея в запасе многие необходимые знания.
Язык Си среднего уровня, сочетающий в себе как некоторые элементы высокоуровневых языков, так и низкоуровневые операции. В частности, он позволяет легко оперировать с байтами и битами, а также работать с памятью напрямую, используя указатели. Кроме того, язык Си легко переносится, другими словами, написанный под одну операционную систему код может быть откомпилирован в другой. Рассмотренные и прочие достоинства делают язык Си подходящим средством для разработки ряда приложений, например, компиляторов.
параметрический оператор программа язык си
1. Блок-схема решения задачи
2. Текст программы на языке Си
#include
#include
#include
#include
#include
#include
using namespace std;
const float pi_max = 3.14;
const float pi_min = -3.14;
const float h = 3.14 / 10;
inline float fx (float & x)
{
return 3 * cos (5 *x) + 2 * sin (x);
}
inline bool Cmp (float &x, float &y)
{
return x > y;
}
int fy (float **matrix, int size_matrix, vector & A, vector &B)
{
int max_row = -1;
float sum = 0;
for (int i = 0; i < size_matrix; i++) {
for (int j = 0; j < size_matrix; j++) {
matrix[i][j] = pow (A[i], 3) + abs (A[j] - B[j]);
}
}
/* Тут подсчитываем сумму элементов и запоминаем столбец */
for (int i = 0; i < size_matrix; i++) {
float temp = 0;
for (int j = 0; j < size_matrix; j++) {
temp += matrix[j][i];
}
if (temp > sum){
sum = temp;
max_row = i;
}
}
return max_row;
}
inline void fz (float **matrix, int size_matrix, int row)
{
float max_element = matrix[row][0];
for (int j = 0; j < size_matrix; j++) {
matrix[j][row] = max_element;
}
}
int main ()
{
setlocale (LC_ALL, «Russian»);
vector A, B;
vector:iterator it;
int counter = 0;
float n, y;
printf («%s[%2.2f] [%2.2f]rn», «Значение функции на отрезке: «, pi_min, pi_max);
printf («%srn» ," xty");
for (float x = pi_min; x < pi_max; x += h) {
printf («[%2.2f]t», x);
y = fx (x);
printf («[%2.2f]rn», y);
modf (y, &n); // Извлечем в n целую часть числа
if ((int) n % 3 == 0) A. push_back (y);
if (y < 0) {
if (counter >= 1) {
B.push_back (y);
counter = 0;
}
else counter++;
}
}
printf («%srn», «Значение элементов массива, А (кратных трем)»);
for (it = A. begin (); it ≠ A. end (); it++)
printf («[%2.2f] «, *it);
printf («rn»);
printf («%srn», «Значение элементов массива B (каждое 2-ое, отрц. значение)»);
for (it = B. begin (); it ≠ B. end (); it++)
printf («[%2.2f]t», *it);
printf («rn»);
for (int i = 0; i < B. size () — 1; i += 2) {
float temp = B[i];
B[i] = B[i + 1];
B[i + 1] = temp;
}
printf («%srn», «Значение элементов массива, А (кратных трем)»);
for (it = A. begin (); it ≠ A. end (); it++)
printf («[%2.2f] «, *it);
printf («rn»);
printf («%srn», «Значение элементов массива B (каждое 2-ое, отрц. значение)»);
for (it = B. begin (); it ≠ B. end (); it++)
printf («[%2.2f]t», *it);
printf («rn»);
for (int i = 0; i < B. size () — 1; i += 2) {
float temp = B[i];
B[i] = B[i + 1];
B[i + 1] = temp;
}
printf («%srn», «Перестановка массива B (i — элемент с i + 1 — элементом)»);
for (it = B. begin (); it ≠ B. end (); it++)
printf («[%2.2f]t», *it);
printf («rn»);
//Сортируем массив А, в порядке возвростания
sort (A.begin (), A. end (), Cmp);
printf («%srn», «Значение элементов массива, А (Сортировка)»);
for (it = A. begin (); it ≠ A. end (); it++)
printf («[%2.2f] «, *it);
printf («rn»);
printf («%srn», «Формулирование
квадратной
матрицы из мин. размерностей массивов A и B");
int array_min_size = A. size ();
if (B.size () < A. size ()){
array_min_size = B. size ();
printf («%s[%d]rn», «Размерность массива
B меньше A, выбор в пользу B: «, array_min_size);
}
else
printf («%s[%d]rn», «Размерность массива, А меньше B,
выбор в пользу A: ", array_min_size);
printf («%s[%d][%d]rn», «Создание квадратной матрицы, размерностью: «, array_min_size, array_min_size);
float **matrix;
matrix = new float *[array_min_size];
for (int i = 0; i < array_min_size; i++)
matrix[i] = new float[array_min_size];
printf («%srn», «Показ матрицы после вычесления по формуле: S (I, J) = pow (A[i], 3) — |A (J)-B (J)|»);
int max_row = fy (matrix, array_min_size, A, B);
for (int i = 0; i < array_min_size; i++) {
for (int j = 0; j < array_min_size; j++) {
printf («[%2.2f]t», matrix[i][j]);
}
printf («rn»);
}
printf («%s[%d]rn», «Столбец с максимальной суммой № «, max_row);
printf («%srn» ," Замена элементов данного столбца, на 1ый элемент");
fz (matrix, array_min_size, max_row);
printf («%srn», «Показ матрицы после замены»);
for (int i = 0; i < array_min_size; i++) {
for (int j = 0; j < array_min_size; j++) {
printf («[%2.2f]t», matrix[i][j]);
}
printf («rn»);
}
/* Освободить память */
for (int i = 0; i < array_min_size; i++) {
delete[] matrix[i];
}
getch ();
return 0;
}
3. Результаты тестирования программы
Протабулировать функцию Y на заданном отрезке и записать в одномерный массив, А те значения функции, целая часть которых кратна 3, а в одномерный массив B — каждое второе отрицательное число
Y = 3cos5x + 2sinx [-р, р], h= р/10:
Рисунок 1
В Полученном массиве b поменять местами первый со втромым элементами, третий с четвертым и т. д
Рисунок 2
Из полученных массивов, А и В сформировать квадртаную матрицу S, размерность которой равна минимуму из рамзерностей A и B, а значение элементов вычесляется по формуле
S[i, j] = A[i]3 +|A[i] - B[j]|
Размерность полученной матрицы — минимум из размерностей A и B.
В полученном двумерном массиве S, найти столблец с наибольшим числом положительных элементов
Рисунок 3
Заменить значение элементов этого столбца на первый элемент
Рисунок 4
Заключение
В результате выполнения контрольной работы по программированию были изучены различные циклы программирования, исследованы некоторые возможности языка Си, проанализированы допустимые ошибки в данных программах.
Результаты тестирования программного продукта показали, что язык программирования Си действительно является, легок в реализации выполнения данных заданий.
Список использованных источников
1. Павловская Т. А. «С/С++ Программирование на языке высокого уровня»;
2. Подбельский В. В. «Программирование на языке С: учебное пособие»;
3. Подбельский В. В. «Язык С++: учебное пособие»;
4. Скляров В. А. «Программирование на языках С и С++»;
5. Шилдт Г. «Программирование на С и С++»;
6. Джамса Крис «1001 совет по С/С++»;
7. Архангельский А. Я. «Программирование в С++ Builder»;
8. Шамис В. А. «С++ Builder: Техника визуального программирования»;
9. Страуструп Б. «Язык программирования С++»;
10. Франка П. «С++: учебный курс».