
курсовая таблица умножения
.docxФедеральное агентство по образованию
ГОУ ВПО «Удмуртский государственный университет»
Математический факультет
Кафедра вычислительной механики
Курсовая работа
по дисциплине новые информационные технологии
на тему: Формирование таблицы умножения.
Выполнил:
студент гр. 19-41
Григорьев Г.Л.
Научный руководитель:
Камидуллина Т.В.
Ижевск 2011г.
Оглавление
Введение 3
Обозначения 5
Постановка задачи 6
Алгоритм 7
Заключение 8
Приложение 9
Список использованной литературы: 12
Введение
Таблица умножения, она же таблица Пифагора — это таблица, где строки и столбцы озаглавлены множителями, а в ячейках таблицы находится их произведение. Такие таблицы используется в основном для обучения школьников умножению.
В своё время введение заучиваемой наизусть таблицы умножения революционизировало устный и письменный счёт. До этого использовались разные хитрые способы вычисления произведений однозначных чисел, которые сильно замедляли весь процесс и служили источником дополнительных ошибок.
В российских школах значения традиционно доходят до 10×10. В Великобритании до 12×12, что связано в том числе с единицами английской системой мер длины (1 фут = 12 дюймов) и денежного обращения (существовавшей до 1971 г.: 1 фунт стерлингов = 20 шиллингам, 1 шиллинг = 12 пенсам).
Как найти результат по таблице умножения
Возьмём таблицу умножения до 5×10:
Чтобы узнать результат произведения 4×8 по таблице умножения, нужно взять 4 в левом столбце, 8 в верхней строке, провести от 4 горизонтальную линию, а от 8 вертикальную. Число, на которое попадают две линии, является произведением.
Точка совпадения чисел — 32. 32 — произведение чисел 4 и 8. Такой - же способ нахождения остальных чисел по таблице умножения.
В своей курсовой работе я опишу создание программы формирования таблицы умножения с произвольными диапазонами.
Обозначения
В исходном коде программы используются следующие основные обозначения:
-
double x0 – Начальное значение диапазона по горизонтали.
-
double x1 – Конечное значение диапазона по горизонтали
-
double xh – Шаг по горизонтали. В этой переменной хранится число, с каким шагом высчитываются множители в заданном диапазоне.
-
double y0 – Начальное значение диапазона по вертикали.
-
double y1 – Конечное значение диапазона по вертикали
-
double yh – Шаг по вертикали.
Постановка задачи
Написать программу для формирования таблицы умножения в заданных интервалах с выводом результата либо на форму, либо в файл.
Алгоритм
1. Ввод начальных данных: x0, x1, xh, y0, y1, yh.
2. Вычисление произведения множителей:
for (xi от x0 до x1 с шагом xh)
for (yj от y0 до y1 с шагом yh)
Вывод ( xi * yj );
Заключение
С помощью данной программы можно сформировать любую таблицу умножения, которую можно использовать в учебных и исследовательских целях. Таблицы умножения могут также использоваться в высшей алгебре для определения бинарных операций в группах, полях, кольцах и других алгебраических структурах. (В этом случае под умножением понимается операция, отличная от обычного арифметического умножения). В программировании таблицы умножения и аналогичные таблицы заранее рассчитанных значений от дискретного набора параметров могут использоваться для ускорения и оптимизации вычислений.
Приложение
Исходный код программы:
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MultiplTable
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_Click(object sender, EventArgs e)
{
double x0 = Convert.ToDouble(textBoxX0.Text);
double x1 = Convert.ToDouble(textBoxX1.Text);
double xh = Convert.ToDouble(textBoxXh.Text);
double y0 = Convert.ToDouble(textBoxY0.Text);
double y1 = Convert.ToDouble(textBoxY1.Text);
double yh = Convert.ToDouble(textBoxYh.Text);
if ((x0 > x1) || (y0 > y1))
{
MessageBox.Show("Начальное значение не может быть больше конечного значения!");
return;
}
if ((xh == 0) || (yh == 0))
{
MessageBox.Show("Шаг не может быть равен нулю");
return;
}
int N = (int)((x1 - x0) / xh)+1;
int M = (int)((y1 - y0) / yh)+1;
dataGridView1.ColumnCount = N;
dataGridView1.RowCount = M;
int i, j;
double xj, yi;
for (j = 0, xj = x0; j < N; j++, xj += xh)
dataGridView1.Columns[j].HeaderText = Convert.ToString(xj);
for (i = 0, yi = y0; i < M; i++, yi += yh)
{
dataGridView1.Rows[i].HeaderCell.Value = Convert.ToString(yi);
for (j = 0, xj = x0; j < N; j++, xj += xh)
dataGridView1.Rows[i].Cells[j].Value = Convert.ToString(xj * yi);
}
}
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
double x0 = Convert.ToDouble(textBoxX0.Text);
double x1 = Convert.ToDouble(textBoxX1.Text);
double xh = Convert.ToDouble(textBoxXh.Text);
double y0 = Convert.ToDouble(textBoxY0.Text);
double y1 = Convert.ToDouble(textBoxY1.Text);
double yh = Convert.ToDouble(textBoxYh.Text);
if ((x0 > x1) || (y0 > y1))
{
MessageBox.Show("Начальное значение не может быть больше конечного значения!");
return;
}
if ((xh == 0) || (yh == 0))
{
MessageBox.Show("Шаг не может быть равен 0");
return;
}
int N = (int)((x1 - x0) / xh);
int M = (int)((y1 - y0) / yh);
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
using (StreamWriter sw = new StreamWriter(myStream))
{
// Add some text to the file.
sw.WriteLine("Таблица умножения в диапазоне");
sw.WriteLine("по вертикали: от {0} до {1} с шагом {2}", y0, y1, yh);
sw.WriteLine("по горизонтали: от {0} до {1} с шагом {2}", x0, x1, xh);
for (double xi = x0; xi <= x1; xi += xh)
sw.Write(" \t{0,2:f}", xi);
sw.WriteLine();
sw.Write(" ");
for (double xi = x0; xi <= x1; xi += xh)
sw.Write("________");
sw.WriteLine();
for (double yi = y0; yi <= y1; yi += yh)
{
sw.Write("{0,5:f} |", yi);
for (double xi = x0; xi <= x1; xi += xh)
sw.Write("\t{0,5:f}", xi * yi);
sw.WriteLine();
}
}
myStream.Close();
}
}
}
}
}
Примеры вывода:
Список использованной литературы:
1. http://wiki.laser.ru/index.php/Таблица_умножения
2. http://ru.wikipedia.org/wiki/Таблица_умножения
3. http://www.habit.ru/33/171.html