Программирование алгоритмических структур на ЯВУ C#
Составление блок-схемы данных вычислений переменных величин. Корректировка и тестирование кода программы. Определение функций и констант при заданных условиях. Использование оператора цикла в расчётах. Изучение алгоритма обработки одномерного массива.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 19.11.2015 |
Размер файла | 787,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
Поволжский государственный университет телекоммуникаций и информатики
КОНТРОЛЬНАЯ РАБОТА
ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ
Программирование алгоритмических структур на ЯВУ C#
Студент (ка) группы
Руководитель
Самара
2001 г
1. Задача 1
Условие: По заданным расчетным формулам и наборам исходных данных, указанных в таблице 1, вычислить на ПК значения соответствующих переменных. На печать вывести значения вводимых исходных данных и результаты расчетов, сопровождая их вывод именами выводимых переменных. алгоритм оператор программа
Таблица 1
M |
Расчетные формулы |
Данные |
|
0 |
Решение: Для решения задачи опишем исходные величины a,b,x в качестве констант и составим блок-схему данных вычислений переменных y и r (рис. 1)
Рис. 1 - Блок-схема алгоритма задачи 1
Исходный код программы выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Prog1
{
class Program
{
static void Main(string[] args)
{
double a=0.3;
double b = 0.9;
double x=0.61;
Console.WriteLine("a={0}, b={1}, x={2}",a,b,x);
double y, r;
y = (Math.Pow(a, 2 * x) + Math.Pow(b, -x)*Math.Cos((a+b)*x))/(x+1);
r = Math.Sqrt(x * x + b) - (b*b*b * Math.Sin(x + a)) / x;
Console.WriteLine("Результаты:");
Console.WriteLine("y={0} и r={1}", y,r);
Console.WriteLine("Фиксированные значения: y={0:f} и r={1:f}", y, r);
Console.ReadKey();
}
}
}
Результат: Результат выполнения задачи 1 представлен на рис. 2.
Рис. 2 - Результат выполнения задачи 1
2. Задача 2
Условие: Вычислить на ПК значения функции, заданной в таблице 2. На печать вывести значения вводимых исходных данных и полученные результаты, сопровождая их именами переменных. Значения аргумента взять из указанного диапазона так, чтобы протестировать все ветви программы.
Таблица 2
N |
Функции и условия |
Данные идиапазон |
|
9 |
a=0.9x = [0 ; 3] |
Решение: Для решения данной задачи, определим область существования переменной x. Переменная х больше 0, но меньше 3, причем определена она только при условии, что она больше 2 или равна 0,5. Область определения переменной x представлена на рис. 3.
Рис. 3 - Область определения переменной x
Блок-схема решения задачи, по определению функции b, при заданных условиях x представлена на рис.4.
Рис. 4 - Блок-схема алгоритма задачи 2
Исходный код программы выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Prog2
{
class Program
{
static void Main(string[] args)
{
double x,b,a=0.9;
Console.Write("Введите x: ");
x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine();
if (x>2 & x<=3) {
b = a * Math.Log(x) + Math.Sqrt(x);
Console.WriteLine("x={0,3:f},b={1,3:f}", x, b);
}
else
{
if (x == 0.5)
{
b = 2 * a * Math.Cos(x);
Console.WriteLine("x={0,3:f},b={1,3:f}", x, b);
}
else
{
Console.WriteLine("x={0,3:f} Func No", x);
}
}
Console.WriteLine();
Console.WriteLine("Нажми любую клавишу");
Console.ReadKey();
}
}
}
Результат: Результат выполнения задачи 1 представлены на рис. 5-7
Рис. 5 - Результат выполнения при x=0,5
Рис. 6 - Результат выполнения при x=2,3
Рис. 7 - Результат выполнения при x=6
3. Задача 3
Условие: Вычислить на ПК значения функции, заданной в таблице 3, используя оператор цикла for… to…do с параметром
Таблица 3
M+N |
a = 2.8; b = 0.7; x = 5.1 |
|
9 |
Решение: При вычислении произведения сначала вычисляется Р1=Р0P(n1), затем Р2 = Р1P(n2) и т.д. Здесь Р0 - начальное значение произведения и т.к. Р1 должно быть равно P(n1) , то Р0 = 1, следовательно первоначальное значение v=1.
Таким образом, для нахождения произведения используется алгоритм действий, представленный на рис. 8.
Рис. 8 - Блок-схема решения задачи 3
Исходный код программы представлен ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Prog3
{
class Program
{
static void Main(string[] args)
{
double a = 2.8, b = 0.7, x = 5.1,n,v=1;
for (n = 1; n <= 12; n++)
v = v * Math.Cos(n * a * a * b * b);
Console.WriteLine("Произведение членов ряда = {0}", v);
Console.ReadKey();
}
}
}
Результат: Результат выполнения программы представлен на рис. 9.
Рис. 9 - Результат выполнения программы задачи 3
4. Задача 4
Условие: Вычислить на ПК значения функции, заданной в таблице 4, используя операторы while…do и repeat…until.
На экран вывести значения вводимых исходных данных и полученные результаты в виде таблицы.
Таблица 4
Функции и условия |
Данные |
Диапазонаргумента |
|
a=2.5b=2.6 |
x = [2 ; 5]шаг=0.5 |
Решение: При решении данной задачи можно использовать алгоритмы циклической структуры "до" и "пока". Параметром данного цикла является х, причем при каждом повторном вычислении его значение следует увеличивать на величину шага.
Объявим переменную х в разделе объявлений вещественного типа и зададим в программе ей начальное значение равное 0. В процессе вычислений значение переменной будет изменяться с заданным шагом 0,5.
Для вычисления y при х>1 будем использовать алгоритмическую структуру "цикл-до", а при вычислении функции в диапазоне 2<x4 - "цикл-пока".
Блок-схема одного из вариантов алгоритма решения задачи приведена на рис.10.
Рис. 10 - Блок-схема решения задачи 4
Программа, соответствующая представленному алгоритму будет иметь вид:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Prog4
{
class Program
{
static void Main(string[] args)
{
double a = 2.5, b = 2.6, x = 2,y;
Console.WriteLine("_____________________");
do
{
y = a * Math.Log(x) + Math.Sqrt(x);
Console.WriteLine(" x = {0,2:f} | y = {1,3:f}", x, y);
Console.WriteLine("_____________________");
x = x + 0.5;
}
while (x > 4);
while (x <= 5)
{
y = b * Math.Cos(x) * Math.Cos(x);
Console.WriteLine(" x = {0,2:f} | y = {1,3:f}", x, y);
Console.WriteLine("_____________________");
x = x + 0.5;
}
Console.ReadKey();
}
}
}
Результат: Результат выполнения программы представлен на рис.11
Рис. 11 - Результат выполнения задачи4
5. Задача 5
Условие: С помощью ПК произвести обработку одномерного массива, заданного в таблице 5. Элементы одномерного массива задать числами в диапазоне -20 . . . +20. Необходимо:
– описать массив;
– ввести элементы массива из заданного диапазона;
– выполнить с элементами массива действия, заданные в табл. 5;
– вывести результаты на экран;
Таблица 5
M |
Имя массива |
Задание 1 |
|
0 |
P(12) |
Переписать в массив Q подряд отрицательные элементы массива P. |
Решение: Для решения данной задачи необходимо перебрать все значения массива от первого до последнего и проверить каждое значение соответствует ли оно условию, является ли оно отрицательным. При выполнении данного условия текущее значение попадает в массив Q, в противном случае необходимо перейти к следующему элементу. Алгоритм выполнения данной операции представлен на рис.12.
Рис. 12 - Блок-схема решения задачи 5
Код программы для решения данной задачи
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Prog5
{
class Program
{
static void Main(string[] args)
{
int n;
Console.Write("Введите количество элементов n: ");
n = Convert.ToInt32(Console.ReadLine());
if (n <= 10)
{
//инициализация массивов
int[] P = new int[10];
int[] Q = new int[10];
//ввод элементов массива
for (int i = 0; i < n; i++)
{
int t;
do {
Console.Write("P[{0}] = ", i);
t=Convert.ToInt32(Console.ReadLine());
}
while (t>20 || t<-20);
P[i] = t;
}
int j = 0;
//формирование отрицательных элементов массива
for (int i = 0; i < n; i++)
{
if (P[i]<0) {
Q[j] = P[i];
j++;
}
}
if (j > 0)
{
//вывод массива
Console.WriteLine("Вывод массива Q:");
for (int k = 0; k <= j - 1; k++)
{
Console.WriteLine("Q[{0}] = {1}", k, Q[k]);
}
}
else Console.WriteLine("Нет таких элементов");
}
else Console.WriteLine("Ошибка ввода значения n");
Console.ReadKey();
}
}
}
Результаты выполнения программы представлены на рис. 13-14.
Рис. 13 - Вывод элементов Q[i]
Рис. 14 - Нет элементов, соответствующих условию
Выводы по работе
Курс программирования на языке высокого уровня C# позволил освоить знания для решения разнообразных задач по математическим вычислениям, работой с циклами и массивами. Среда разработки Visual Studio позволяет устранить ошибки на стадии написания кода, либо отладки благодаря интуитивной системе подсветки синтаксиса. Интерфейс среды разработки имеет дружественный интерфейс.
Также, на языке C#, помимо консольного приложения возможно добавлять и графические представления и формы, добавление компонентов на которую происходит при помощи выбора соответствующего компонента на дополнительной панели.
Результирующим решением компиляции исходного кода - является exe-исполняющий файл, который является аппаратно- и программно-независимым при наличии .NET Framework.
Список используемой литературы
Акчурин Э.А. Программирование на языке C# в MS Visual Studio.Net или SharpDevelop. Учебное пособие для студентов. Самара: ПГУТИ, 2011, 152 с.
Акчурин Э.А., Ильин А. М. Программирование на языке C#. ЛР в ИСР Visual C# Express. Лабораторный комплекс для студентов. Самара: ПГУТИ, 2011, 152 с
Культин Н. Основы программирования в MS Visual C# 2010 - СпБ: БХВ-Питербург, 2011, 368 с.
Биллинг В. А. Основы объектного программирования на C#. - М.: БИНОМ, 2010. - 582 с.
Размещено на Allbest.ru
...Подобные документы
Разработка блок-схемы и программы обработки одномерного массива с доступом к элементам с помощью индексов и с помощью указателей. Словесное описание алгоритма и пользовательского интерфейса, листинг программы обработки матрицы и результат её выполнения.
курсовая работа [391,1 K], добавлен 30.09.2013Изучение определения, описания и вызова функций, указателей и ссылок на них. Написание функции умножения произвольного столбца двумерного массива на const. Умножение 2 столбцов массива на константы. Составление блок-схемы алгоритма и текста программы.
лабораторная работа [182,3 K], добавлен 09.01.2012История развития программы Паскаль. Типы переменных. Значение переменной для прекращения вычислений. Использование операторов цикла, процедур и функций. Ввод значений М-конца цикла и произведение вычислений по расчётной формуле. Форматированный вывод.
контрольная работа [45,9 K], добавлен 13.07.2013Построение ветвящихся процессов на примере табулирования функции на заданном промежутке. Построение блок-схемы, применение операторов цикла и условного перехода, математических функций и констант. Создание алгоритма и листинг программы на языке Pascal.
лабораторная работа [154,1 K], добавлен 07.02.2012Работа с одномерными и двухмерными массивами: составление функций нахождения заданных элементов, их количества и суммы под и над главной диагональю, поиск среднего арифметического. Составление блок-схемы, написание текста программы, его тестирование.
контрольная работа [52,0 K], добавлен 27.12.2010Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.
контрольная работа [360,4 K], добавлен 13.06.2012Разработка программы совместной обработки данных о проданных билетах на одну дату отправления авиарейсов и общее количество для формирования выходного документа; исходные данные и особенности алгоритма; ограничения. Тестирование функций программы.
курсовая работа [4,1 M], добавлен 07.04.2012Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.
курсовая работа [1,8 M], добавлен 05.03.2013Элементы и переменные, используемые для составления записи в Паскале. Основные числовые типы языка Turbo Pascal. Составление блок-схемы приложения, программирование по ней программы для вычисления функции. Последовательность выполнения алгоритма.
лабораторная работа [256,9 K], добавлен 10.11.2015Основные аналитические соотношения. Блок схемы и алгоритм решения задачи. Проверка работоспособности алгоритма вручную. Таблица идентификации переменных. Формы входной и выходной печати. Разработка и отладка программы. Инструкция для работы с программой.
курсовая работа [69,8 K], добавлен 13.02.2012Анализ различных способов хранения информации: одномерный массив, типизированный файл и динамический список. Сортировка только положительных чисел. Словесное описание алгоритма. Блок-схема процедуры обработки данных с помощью одномерного массива.
контрольная работа [319,7 K], добавлен 29.05.2014Разработка на языке ассемблера алгоритма контроля, на циклический CRC-код, массива данных хранящегося в некоторой области памяти. Сохранение кода для последующей периодической проверки массива данных. Сообщение об искажении данных. Описание алгоритма.
курсовая работа [453,0 K], добавлен 27.02.2009Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
контрольная работа [52,9 K], добавлен 03.10.2010Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.
контрольная работа [150,4 K], добавлен 03.05.2014Рассмотрение правил записи, способов ввода и вывода, использования функций обработки символьных данных в Pascal. Описание алгоритмизации и программирования файловых структур данных, проектирования структуры файла. Ознакомление с работой данных массива.
курсовая работа [336,2 K], добавлен 27.06.2015Использование нестандартных функций и подпрограмм (процедур) для составления алгоритмов вычислений. Программы для вычисления значение корней нелинейного уравнения по методу половинного деления. Составление алгоритма операций над матрицами и интегралами.
курсовая работа [580,0 K], добавлен 23.08.2015Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.
курсовая работа [67,6 K], добавлен 20.11.2012Разработка программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран заданную информацию. Типы блок-схем и их использование при написании программы. Описание входных данных и результат вычислений, листинг программы.
курсовая работа [680,3 K], добавлен 03.08.2009Особенности разработки программ на языке Turbo Pascal на примере программы обработки массива данных с построением диаграммы. Функции программы и основные требования к ней. Состав входных и выходных данных. Использование предметной области "Садовод".
курсовая работа [789,1 K], добавлен 13.03.2013