Автор: Пользователь скрыл имя, 19 Апреля 2012 в 01:57, курсовая работа
Целью данной курсовой работы является закрепление и расширение полученных знаний в области программирования, в частности, связанные с вводом и выводом информации, типами данных, выражениями и операторами. Кроме этого, при разработке курсовой работы большое внимание уделено работе с электронными таблицами: применением арифметических, статистических операторов, а также использованием элементов графического отображения информации.
Задание на курсовую работу ……………………………...…..………………1
Замечания руководителя……………………………………….……………...2
Введение…………………………………………………….….………………5
Теоретическая часть……………………………………….…..…..…………..6
1.Алгоритм, виды алгоритмов и способы их реализации…………………...6
1.1.Что такое алгоритм? История возникновения слова алгоритм..………..6
1.2.Свойства алгоритма…………………………….………………….………7
1.3.Способы описания алгоритмов…………………………………………....8
1.4.Базовые структуры программирования………………………………….11
1.4.1.Линейные структуры……………………………………………………11
1.4.2. Разветвляющаяся структура…………………………………………...12
1.4.3. Циклическая структура………………………………………………...13
1.4.4.Цикл с предусловием и цикл с постусловием……………………….13
2. Обзор основных программных средств……………………………….…..16
2.1. Язык программирования С#.………………………………………….....16
2.3.1. Общая информация о языке. ………………………………………….16
2.3.2 Предшественники языка. …………………………………………........17
2.3.3. Особенности языка. …………………………………………................17
2.3.4 Версия 1.0. …………………………………………................................17
2.3.5. Версия 2.0. …………………………………………...............................18
2.3.6. Версия 3.0. …………………………………………...............................19
2.3.7. Версия 4.0. …………………………………………...............................20
2.4. Электронные таблицы Excel. ………………………………………….21
2.4.1. Особенности и применение электронных таблиц. ………………...21
2.4.2. Возможности Microsoft Exсel. …………………………………...….22
3. Практические задания. …………………………………………..............24
3.1. Задание 1. …………………………………………................................24
3.2. Задание 2. …………………………………………...............................28
3.3. Задание 3………………………………………….................................31
3.4. Задание 4………………………………………….................................35
3.5. Задание 5………………………………………….................................40
3.6 Задание 6…………………………………………..................................45
3.7. Задание 7………………………………………….................................49
3.8. Задание 8………………………………………….................................52
3.9. Задание 9………………………………………….................................55
3.10. Задание 10………………………………………….............................57
Заключение ………………………………………….............................59
Список литературы …………………………………………................60
Математическое решение задачи. Для решения данной задачи нам необходимо использовать 3 цикла и 3 условия, в первом цикле мы создаем последовательность чисел a1-a20, во втором проверяем условия (mas[i] <= 20 && mas[j] <= 20 && mas[i] + mas[j] <= x) и (mas[j] + ob[2] == x), если все условия выполняются, то формируем новый массив чисел i, j, k, если нет выводим сообщение «таких чисел нет».
Словесное описание алгоритма решения:
Блок-схема:
Программа на С#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4
{
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
try
{
Console.WriteLine("Введите х");
double x = double.Parse(Console.ReadLine(
double[] mas = new double[20];
List<double[]> list = new List<double[]>();
Console.WriteLine("\
for (int i = 0; i < 20; i++)
{
//mas[i] = double.Parse(Console.ReadLine(
mas[i] = rnd.Next(1, 15);//авто
Console.WriteLine(mas[i]);//
}//for i
Console.WriteLine("\n");
for (int i = 0; i < 20; i++)
{
for (int j = i + 1; j < 20; j++)
{
if (mas[i] <= 20 && mas[j] <= 20 && mas[i] + mas[j] <= x)
list.Add(new double[] { i, j, (mas[i] + mas[j]) });
}//for i
}//for j
int count = 0;
for (int i = 0; i < list.Count; i++)
{
for (int j = i + 1; j < 20; j++)
{
double[] ob = list[i];
if (mas[j] + ob[2] == x)
{
Console.WriteLine("i=" + mas[Convert.ToInt32(ob[0])] + " j=" + mas[Convert.ToInt32(ob[1])] + " k=" + mas[j]);
count += 1;
}
}
}
if (count == 0) Console.WriteLine("Таких чисел нет");
}
catch { Console.WriteLine("Ошибка!"); }
Console.ReadLine();
}
}
}
Тестирование и отладка:
Номер теста |
Проверяемый случай |
Переменные |
Результат |
1 |
Нормальные условия |
20 |
Программа работает нормально |
2 |
Граничные условия |
0 |
Таких чисел нет |
3 |
Экстримальные условия |
А |
Программа выдает ошибку |
Решение задачи на ЭВМ и анализ результатов.
1.
2.
3.
Вывод: программа работает исправно, при различных входных данных, что подтвержденно различными тестами.
Постановка задачи. Даны действительные числа х1,…,х8. Получить действительную квадратную матрицу порядка 8
Математическое решение задачи. Для решения данной задачи нам необходимо воспользоваться 2 циклами, в первом мы вручную вводим элементы массива mas, во втором получаем массив res путем возведения элементов массива mas в степень равную номеру строки массива res.
Словесное описание алгоритма решения:
Блок-схема:
Программа на С#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _5
{
class Program
{
static void Main(string[] args)
{
Random rnd = new Random();
try
{
double[] mas = new double[8];
double[,] res = new double[8, 8];
Console.WriteLine("Введите значения x1-x8");
for (int i = 0; i < 8; i++)
{
mas[i] = double.Parse(Console.ReadLine(
//mas[i] = rnd.Next(1, 99);//авто
//Console.WriteLine(mas[i]);//
}//for i
Console.WriteLine("\n");
for (int i = 0; i < 8; i++)
{
Console.WriteLine();
for (int j = 0; j < 8; j++)
{
res[i, j] = Math.Pow(mas[j], i+1);
Console.Write("{0} ", res[i, j]);
}//for i
}//for j
}
catch { Console.WriteLine("Ошибка!"); }
Console.ReadLine();
}
}
}
Тестирование и отладка:
Номер теста |
Проверяемый случай |
Вводимые данные |
Результат |
1 |
Нормальные условия |
1,2,3,4,5,6,7,8 |
Программа работает нормально |
2 |
Граничные условия |
0,0,0,0,0,0,0,0 |
Матрица из нулей |
3 |
Экстримальные условия |
А |
Программа выдает ошибку |
Решение задачи на ЭВМ и анализ результатов.
1.
2.
3.
Вывод: программа работает исправно, при различных входных данных, что подтвержденно различными тестами.
Постановка задачи. Дано натуральное число n. Необходимо выяснить сколько положительных элементов содержит матрица А размером nxn при выполнении условия aij = cos(i^2 – n*j)
Математическое решение задачи. Для решения данной задачи необходимо воспользоваться циклом, в котором мы присваиваем элементам значения cos(i ^2 + n * j) (n- размерность массива).
Словесное описание алгоритма решения:
Блок-схема:
Программа на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _6
{
class Program
{
static void Main(string[] args)
{
try
{
Random rnd = new Random();
int n = 0;
Console.WriteLine("Введите n");
if (int.TryParse(Console.
{
double[,] mas = new double[n, n];
int count = 0;
for (int i = 0; i < n; i++)
{
Console.WriteLine();
for (int j = 0; j < n; j++)
{
mas[i, j] = Math.Cos(i * i + n * j);
Console.Write("{0:f} ",mas[i, j]);
if (mas[i, j] > 0) count += 1;
}
}
Console.Write("\nКоличество положительных элементов ="+count);
}
else Console.WriteLine("Введено не число!");
}//try
catch { Console.WriteLine("Ошибка!"); }
Console.ReadLine();
}
}
}
Тестирование и отладка:
Номер теста |
Проверяемый случай |
Вводимые данные |
Результат |
1 |
Нормальные условия |
4 |
Программа работает нормально |
2 |
Граничные условия |
0 |
Пустая матрица |
3 |
Экстримальные условия |
А |
Программа выдает ошибку |
Решение задачи на ЭВМ и анализ результатов.
1.
2.
3.
Вывод: программа работает исправно, при различных входных данных, что подтвержденно различными тестам.
Постановка задания. Даны вещественные числа а1,…,а25. И необходимо умножить каждый член последовательности аi (i = 1,…,25) на квадрат её наименьшего члена, если аi≥0, и на квадрат её наибольшего члена, если аi<0
Математическое решение
Словесное описание алгоритма решения:
Блок-схема:
Программа на С#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _7
{
class Program
{
static void Main(string[] args)
{
try
{
Random rnd = new Random();
double[] mas = new double[25];
for (int i = 0; i < 25; i++)
{
//mas[i] = int.Parse(Console.ReadLine());
mas[i] = rnd.Next(10, 25)-15;//авто
Console.WriteLine("{0} ", mas[i]);//авто
}
double max = double.MinValue;
double min = double.MaxValue;
for (int i = 1; i < 25; i++)
{
if (mas[i] > max) max = mas[i];
if (mas[i] <min) min = mas[i];
}//for
Console.WriteLine("\
for (int i = 0; i < 25; i++)
{
if (mas[i] >= 0) mas[i] *= min * min;
else mas[i] *= max * max;
Console.WriteLine(mas[i]);
}
}//try
catch { Console.WriteLine("Ошибка!"); }
Console.ReadLine();
}
}
}
Тест не требуется
Постановка задачи. Необходимо определить функцию f(x)=-5x/(x^2 + 2), вычислить её значение при х=2,7 и построить таблицу значений для х[-2; 10] с шагом 0,75.
Математическое решение задачи. Для решения данной задачи необходимо воспользоваться циклом, в котором мы вычисляем значения функции 5x/(x^2 + 2) , за значения х мы берем значение переменной i с приращением 0,75.