Особенности программирования линейных алгоритмов

Программирование линейных алгоритмов: графическая схема и составление программы. Табулирование функций, отладка программы. Работа с одно- и двухмерными массивами: вычисление сумм, количеств и произведений элементов массива, в строках и столбцах матрицы.

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

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

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

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

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

18

19

1. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

Составить графическую схему алгоритма и программу для вычисления функции b=f(x,y,z). Исходные данные для отладки программы подобрать самостоятельно.

4

Решение

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

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

18

19

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

b

b

float

Результат

x

x

float

Исходное данное

y

y

float

Исходное данное

z

z

float

Исходное данное

/ * Вычисление линейной программы * /

# include <stdio.h>

# include <math.h>

void main ( )

{

float x, y, z, b; //Описание переменных

printf (“ введите x, y, z \ n”); // Вывод сообщения

scanf (“%f %f %f”, &x, &y, &z); // Ввод исх. данных

printf (“исходные данные: \ n x=%7.1f y=%7.2f z=%7.1f \ n”, x, y, z); // Вывод исх. данных

b= sqrt(x+sqrt (sqrt (fabs(y)))) + cos (z)*cos (z); // Вычисление значения b

printf (“результаты: \ n b=%7.5f \ n”, b);// Вывод результата

} //Конец программы

2. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

Составить графическую схему алгоритма и написать программу вычисления функции y=f(x) в соответствии с видом функции, приведенном в табл.2.1. В программе предусмотреть вывод:

- значения аргумента функции x;

- вычисленного значения функции y;

- номер формулы, по которой производилось вычисление функции (1, 2 или 3).

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

4

Решение

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

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

18

19

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

x

x

float

Исходное данное

y

y

float

Результат

-

t

int

Вспомогательная, номер формулы

/*Пример разветвляющейся программы*/

# include <stdio.h>

# include <math.h>

void main ( )

{

float x, y; //Описание переменных

int t;

puts (“ введите число x”); // Вывод сообщения

scanf (“%f”, &x); // Ввод исх. данных

printf (“x=%f”, x); // Вывод исх. данных

if (x>5 && x!= 20) //Начало цикла

{

y=x*x*x;

t=1;

}

else

if (x>=-5 && x<=5)

{

y=x*x;

t=2;

}

else

{

y=log10 (fabs(x));

t=3;

} //Конец цикла

printf(“y=%f (формула%d) \ n”, y, t); // Вывод результата

} //Конец программы

Тесты

1) x= -6; y= lg|6|=0,778; t=3;

2) x= -5; y=25; t=2;

3) x=1; y=1; t=2;

4) x=5; y=25; t=2;

5) x=10; y=1000; t=1;

6) x=20; y=lg|20|=1,301; t=3;

7) x=25; y=15625; t=1.

3. ТАБУЛИРОВАНИЕ ФУНКЦИЙ

В соответствии с видом функции, приведенном в таблице 3.1, вычислить значения функции y=f(x) для значений аргумента x, изменяющегося в интервале от xнач до xкон с шагом ?x.

Исходные данные для отладки программы (xнач, xкон, ?x), выбрать самостоятельно. Результаты (значения аргумента x, функции y, номер формулы) оформить в виде таблицы, строки таблицы пронумеровать. В заголовке таблицы вывести исходные данные. Задание выполнить в 2-х вариантах с использованием операторов цикла while и for.

4

Решение

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

Xn

float

Левая граница интервала

Xk

float

Правая граница интервала

?X

h

float

Шаг табулирования

Y

y

float

Значение функции

X

x

float

Аргумент функции

-

m

int

Номер формулы

-

N

int

Табличная нумерация

/*Табулирование функции*/

# include <stdio.h>

# include <conio.h>

# include <math.h>

void main ( )

{

float Xn, Xk, h, x, y; //Описание переменных

int m, N;

clrscr ( );

puts ( “ Введите начальное значение интервала”); // Ввод исх. данных

scanf(“%f”, &Xn);

puts (“ Введите конечное значение интервала”);

scanf(“%f”, &Xk);

puts (“ Введите шаг табулирования”);

scanf(“%f”, &h);

puts (“----T-----T-----T---¬”); //Формирование шапки таблицы

puts (“¦ N ¦ x ¦ y ¦ m ¦”);

puts (“+---+-----+-----+---+”);

x=Xn; // Расчёт таблицы функции

N=0;

while(x<=Xk)

{

N=N+1;

if (x>1 && x<=5) //Начало цикла

{

y= atan(0.2*x)*atan(0.2*x);

m=1;

}

else

if (x>5)

{

y= exp(-x)+log10(2*x);

m=2

}

else

{

y= (x*x+1);

m=3;

}

printf(“¦ %1d ¦ %3f ¦ %3f ¦ %1d ¦ \n”, N, x, y, m);

x=x+h;

} //Конец цикла

puts ( “L---+-----+-----+----”);

} //Конец программы

Тесты:

----T-----T-----T---¬

¦ N ¦ x ¦ y ¦ m ¦

+---+-----+-----+---+

¦ 1 ¦ -1 ¦ 2 ¦ 3 ¦

¦ 2 ¦ 1 ¦ 2 ¦ 3 ¦

¦ 3 ¦ 3 ¦ 0,29¦ 1 ¦

¦ 4 ¦ 5 ¦ 0,61¦ 1 ¦

¦ 5 ¦ 6 ¦ 1,08¦ 2 ¦

L---+-----+-----+----

4. РАБОТА С ОДНОМЕРНЫМИ МАССИВАМИ

4.1 Вычисление сумм, количеств и произведений элементов массива

В каждой из задач данного раздела (таблица 4.1) предполагается, что задан массив чисел. Программа должна:

1) вводить размерность и элементы массива;

2) вводить некоторые дополнительные числа;

3) выполнять действия в соответствии с условием задачи;

4) выводить исходные данные и результаты вычислений.

Исходные данные для отладки программы выбрать самостоятельно. Массив объявить как статический.

4

Найти количество чисел, меньших заданного X, и произведение всех отрицательных чисел, стоящих на нечетных местах.

Решение

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

P

P

float

Произведение отрицательных чисел

A

A

float

Одномерный статический массив

X

x

float

Заданное число

-

n

int

Количество элементов массива

k

k

int

Количество чисел меньших X

-

k1

int

Количество отрицательных чисел

-

i

int

Номер элемента массива; параметр цикла

/*Вычисление одномерного статического массива*/

# include <stdio.h>

# include <math.h>

void main ( )

{

float P, A[10],x; //Описание переменных

int i,k1,k,n;

puts (“ Введите число x”); // Вывод сообщения

scanf (“%f”, &x); // Ввод исх. данных

puts (“ Введите число элементов массива А”);// Ввод n и массива

scanf (“%d”, &n);

for (i=0, i<n, i++)

{

printf(“Введите число A[%d]=”, i);

scanf(%f”, &A[i]);

}

puts(“Массив А”); // Вывод массива

for (i=0, i<n, i++)

printf(“%.2f “, A[i]);

printf(“\n”);

printf(“x=%.3f \n”, x); // Вывод x

k=0;

for (i=0, i<n, i++)

if (A[i]<x) k=k+1;

printf(“k=%d \n” ,k);

P=1;

k1=0;

for (i=1, i<n, i=i+2)

if (A[i]<0)

{

P=P*A[i];

k1=k1+1;

}

if (k1==0)

printf(“В массиве на нечётных местах нет отрицательных чисел \n”);

else

printf(“P=%f \n” ,P);

}

Тесты:

1) A= [3; 6; 10; 7; -3; -7; -5; 17; 6; 10], X=10;

P= 15, k=7.

2) A= [3; 1; 0; 7; 9; 17; 9; 2; 75; 8], X=0;

k=0, « В массиве на нечетных местах нет отрицательных чисел»

3) A= [-2; -6; -1; 0; -7; -4; -2; -3; -1; -75], X=3;

P=-28, k=10.

4.2 Вычисление сумм, количеств и произведений элементов массива

В каждой из задач данного раздела (таблица 4.2) предполагается, что задан массив чисел. Программа должна:

1) вводить размерность и элементы массива;

2) вводить некоторые дополнительные числа;

3) выполнять действия в соответствии с условием задачи;

4) выводить исходные данные и результаты вычислений.

Исходные данные для отладки программы выбрать самостоятельно. Массив объявить как динамический.

4.

Найти максимальный элемент, расположенный между первым и последним нулевыми элементами массива.

Решение

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

max

max

float

Максимальное число

A

A

float

Одномерный динамический массив

-

n

int

Количество элементов

-

t1

int

Искомое первое число

-

t2

int

Искомое второе число

-

i

int

Номер строки; параметр цикла

-

k

Int

Количество нулей

/*Вычисление одномерного динамического массива*/

# include <stdio.h>

# include <math.h>

void main ( )

{

float max;

int i,t1,t2,n, k;

puts(“Введите число элементов массива А”);

scanf (“%d”, &n);

float*A= new float[n];

k=0;

i=0;

while( i< n & A[i]!=0) k=k+1, i=i+1;

if(k=0);

printf(“В массиве нет нулей \n”);

else

{

if(k=1);

printf(“В массиве один нуль \n”);

else

{

t1= i+1;

}

}

i= n-1;

while( i>=0 & A[i]!=0) i=i-1

t2= i-1;

if(t1=t2);

printf(“Два нуля стоят рядом \n”);

else

{

max=A[t1];

for(i=t1+1; i<t2; t++)

if(A[i]<max) max=A[i];

}

printf(“%d %d %f \n”, t1, t2, max);

delete[] A; // освобождение динамической памяти

}

Тесты:

1) A= [ -3; 15; 6; 0; -2; 13; -21; 17; -9; 11; 0; 7; 3];

t1= -2; t2=11; max=17.

2) A= [-3; 15; 0; 12; 0; 6; 0; -3; 0; 6; 7];

t1=12; t2=-3; max=12.

3) A= [2; 7; 8; 9; -3; -4; 6; 7; 1; 57; 9];

“В массиве нет нулей”

4) A= [2; 3; 67; 12; -6; -4; -98; 0; 98; 6];

“В массиве один нуль”

5) A= [7; -9; -65; 9; 54; 0; 0; 87; -8; -3];

“Два нуля стоят рядом”

5. РАБОТА С ДВУМЕРНЫМИ МАССИВАМИ

5.1 Вычисление сумм, произведений и количеств элементов матрицы

В каждой из задач данного раздела (таблица 5.1) предполагается, что задана матрица размером NхM. Программа должна:

1) вводить размерность и элементы матрицы;

2) вводить некоторые дополнительные числа;

3) выполнять действия в соответствии с условием задачи;

4) выводить исходные данные и результаты вычислений.

Исходные данные для отладки программы выбрать самостоятельно. Массив объявить как статический.

4

Определить количество элементов, больших заданного А и расположенных в строках с нечетными номерами.

Решение

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

K

K

int

Искомое количество элементов

B

B

float

Двумерный статический массив

A

A

float

Заданное число

-

i

int

Номер строки

-

j

int

Номер столбца

/*Вычисление двумерного статического массива*/

# include <stdio.h>

# include <math.h>

void main ( )

{

int i, j, m, n, K;

float A; //Описание переменных

printf (“ Введите число строк и столбцов”); // Вывод сообщения

scanf (“%d %d”, &n, &m);

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

for(j=0; j<m; j++)

{

printf(“Введите B[%d, %d]=”, I, j);

scanf(“%f”, &B[i] [j]);

}

puts (“ введите число A”);

scanf (“%f”, &A);

K=0;

for ( i=1; i<n; i=i+2)

for ( j=0; j<m; j++)

if( B[i]>A) K=K+1;

printf(“%f \n”, K);

}

Тесты:

-3; 8; -2; 10; 7; 82; -4

1) В= -9; 0; -3; 85; 3; 40; -9 ; A= 4; K=7.

-1; 8; 7; -95; 4; -5; 67

-4; -7; 8; 9; 2; -8; -5

2) B= -2; 10; 0; 9; -8; 7; -5 ; A=10; K=0.

-7; 6; -9; 7; 0; -3; 7

5.2 Выполнение вычислений в строках и столбцах матрицы

линейный алгоритм программирование массив

В каждой из задач данного раздела (таблица 5.2) предполагается, что задана матрица размером NхM. Программа должна:

1) вводить размерность и элементы матрицы;

2) вводить некоторые дополнительные числа;

3) выполнять действия в соответствии с условием задачи;

4) выводить исходные данные и результаты вычислений.

Исходные данные для отладки программы выбрать самостоятельно. Массив объявить как динамический.

4

Определить количество строк матрицы, в которых суммы всех элементов отрицательные.

Решение

Таблица соответствия.

Переменные в задаче

Имя на языке Си

Тип

Комментарий

S

S

float

Сумма элементов i-той строки

A

A

float

Двумерный динамический массив

K

K

float

Количество искомых строк

-

n

int

Количество всех строк в матрице

-

m

int

Количество столбцов

-

i

int

Номер строки

-

j

int

Номер столбца

/*Вычисление двумерного динамического массива*/

# include <stdio.h>

# include <math.h>

void main ( )

{

int i, j, m, n;

float K, S; //Описание переменных

puts (“ введите n, m”); // Вывод сообщения

scanf (“%d %d”, &n, &m); // Ввод исх. данных

float**A=new float*[n];

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

A[i]=new float[m];

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

for(j=0; j<m; j++)

{

printf(“Введите A[%d; %d]=”, i, j);

scanf(“%f”, &A[i] [j]);

}

K=0;

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

{

S=0;

for(j=0; j<m; j++)

S=S+A[i] [j];

If(S<0) K=K+1;

}

printf(“%f \n”, K);

for(i>0; i<n; i++)//Освобождение динамической памяти

delete[]A[i]

delete[]A;

}

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


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

  • Исследование особенностей разработки линейных алгоритмов и их реализации в среде Delphi. Составление тестов для проверки программы. Характеристика основных элементов интерфейса, компонентов, значения их свойств. Построение графической схемы алгоритма.

    лабораторная работа [316,6 K], добавлен 08.11.2012

  • Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.

    контрольная работа [1,3 M], добавлен 20.12.2012

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

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

  • Составление алгоритма программы, позволяющей получить изображение флага Норвегии. Программирование вычислительного процесса линейной и разветвляющейся структур: вычисление площади треугольника по формуле Герона, табулирование функции, работа с массивами.

    лабораторная работа [50,4 K], добавлен 28.12.2011

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

    контрольная работа [52,0 K], добавлен 27.12.2010

  • Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.

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

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

    лабораторная работа [137,9 K], добавлен 13.06.2014

  • Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.

    контрольная работа [173,3 K], добавлен 01.03.2010

  • Изучение принципов построения линейных алгоритмов и простых расчетных программ на языке программирования C. Разработка программы расчета математических выражений на основе вводимых данных. Создание консольных приложений в среде Microsoft Visual Studio.

    лабораторная работа [254,4 K], добавлен 23.11.2014

  • Использование нестандартных функций и подпрограмм (процедур) для составления алгоритмов вычислений. Программы для вычисления значение корней нелинейного уравнения по методу половинного деления. Составление алгоритма операций над матрицами и интегралами.

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

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