Составление и отладка программы на языке Си

Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора for и функции форматированного ввода. Разработка программы средствами Си: блок-схема, текст и тестирование программы.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 26.01.2013
Размер файла 204,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

4

Контрольная работа

Составление и отладка программы на языке Си

Аннотация

Контрольная работа представлена пояснительной запиской объёмом 17 листов, 4 рисунка, с использованием литературных источников.

В контрольной работе представлена программа, написанная по средствам языка Си.

Для решения данного задания использовались:

- функция форматированного ввода\вывода;

- условный оператор if;

- параметрический оператор for;

В работе получен положительный результат решения данного задания.

Содержание

Введение

1. Блок-схема решения задачи

2. Текст программы на языке Си

2. Результаты тестирования программы

Заключение

Список использованных источников

Введение

В данной работе проходило знакомство со средой программирования языка Си.

Причина актуальности языка Си заключается в том, что синтаксические конструкции многих других современных языков программирования, появившихся позднее Си, очень сильно напоминают синтаксис языка Си. Здесь речь идет о таких языках, как Java, C#, PHP и др. Еще один любимый и используемый многими язык C++ получен из Си с добавлением к нему средств объектно-ориентированного программирования. Таким образом, изучение языка Си может оказаться одной из первых ступенек на пути к постижению искусства программирования. Освоив его, можно смело приступать к освоению перечисленных языков, уже имея в запасе многие необходимые знания.

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

параметрический оператор программа язык си

1. Блок-схема решения задачи

2. Текст программы на языке Си

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <locale.h>

#include <vector>

#include <algorithm>

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<float> & A, vector<float> &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<float> A,B;

vector<float>::iterator it;

int counter = 0;

float n, y;

printf("%s[%2.2f] [%2.2f]\r\n", "Значение функции на отрезке : ", pi_min, pi_max );

printf("%s\r\n","x\ty");

for(float x = pi_min; x < pi_max; x += h) {

printf("[%2.2f]\t",x);

y = fx(x);

printf("[%2.2f]\r\n", 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("%s\r\n", "Значение элементов массива А (кратных трем)");

for(it = A.begin(); it != A.end(); it++)

printf(" [%2.2f] ", *it);

printf("\r\n");

printf("%s\r\n", "Значение элементов массива B (каждое 2-ое, отрц.значение)");

for(it = B.begin(); it != B.end(); it++)

printf("[%2.2f]\t", *it);

printf("\r\n");

for(int i = 0; i < B.size() - 1; i += 2) {

float temp = B[i];

B[i] = B[i + 1];

B[i + 1] = temp;

}

printf("%s\r\n", "Значение элементов массива А (кратных трем)");

for(it = A.begin(); it != A.end(); it++)

printf(" [%2.2f] ", *it);

printf("\r\n");

printf("%s\r\n", "Значение элементов массива B (каждое 2-ое, отрц.значение)");

for(it = B.begin(); it != B.end(); it++)

printf("[%2.2f]\t", *it);

printf("\r\n");

for(int i = 0; i < B.size() - 1; i += 2) {

float temp = B[i];

B[i] = B[i + 1];

B[i + 1] = temp;

}

printf("%s\r\n", "Перестановка массива B (i - элемент с i + 1 - элементом)");

for(it = B.begin(); it != B.end(); it++)

printf("[%2.2f]\t", *it);

printf("\r\n");

//Сортируем массив А, в порядке возвростания

sort(A.begin(), A.end(), Cmp);

printf("%s\r\n", "Значение элементов массива А (Сортировка)");

for(it = A.begin(); it != A.end(); it++)

printf(" [%2.2f] ", *it);

printf("\r\n");

printf("%s\r\n", "Формулирование

квадратной

матрицы из мин.размерностей массивов A и B");

int array_min_size = A.size();

if(B.size() < A.size()){

array_min_size = B.size();

printf("%s[%d]\r\n", "Размерность массива

B меньше A, выбор в пользу B : ", array_min_size);

}

else

printf("%s[%d]\r\n", "Размерность массива А меньше B,

выбор в пользу A : " ,array_min_size);

printf("%s[%d][%d]\r\n", "Создание квадратной матрицы, размерностью : ", 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("%s\r\n", "Показ матрицы после вычесления по формуле : 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("\r\n");

}

printf("%s[%d]\r\n", "Столбец с максимальной суммой № ", max_row);

printf("%s\r\n","Замена элементов данного столбца, на 1ый элемент");

fz(matrix, array_min_size, max_row);

printf("%s\r\n", "Показ матрицы после замены");

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("\r\n");

}

/* Освободить память */

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. Франка П. «С++: учебный курс».

Размещено на Allbest.ru


Подобные документы

  • Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.

    курсовая работа [233,5 K], добавлен 14.12.2012

  • Разработка комплекса алгоритмов. Кодирование и компиляция. Тестирование, отладка, испытание и сдача программы. Минимальные системные требования для использования Delphi 7. Написание программы с использованием инструментального языка высокого уровня.

    курсовая работа [2,7 M], добавлен 21.02.2011

  • Реализация информационно-справочной системы на языке программирования C#. ее тестирование и отладка. Назначение, состав и структура программы "Адресная книга", описание операций. Программные и аппаратные требования к системе. Блок-схема и код программы.

    курсовая работа [709,5 K], добавлен 11.06.2019

  • Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.

    курсовая работа [823,0 K], добавлен 18.12.2011

  • Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.

    курсовая работа [434,1 K], добавлен 27.08.2012

  • Создание параллельной программы на языке программирования высокого уровня С с расширением MPI и аналогичной программы на OpenMP для решения двумерного уравнения Пуассона итерационным методом Зейделя. Блок-схема алгоритма, анализ работы программы.

    контрольная работа [62,9 K], добавлен 06.01.2013

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

    курсовая работа [1,5 M], добавлен 08.02.2011

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.

    курсовая работа [1,4 M], добавлен 04.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.