Составление и отладка программы на языке Си
Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора 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