Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовая таблица умножения

.docx
Скачиваний:
31
Добавлен:
13.05.2015
Размер:
115.26 Кб
Скачать

Федеральное агентство по образованию

ГОУ ВПО «Удмуртский государственный университет»

Математический факультет

Кафедра вычислительной механики

Курсовая работа

по дисциплине новые информационные технологии

на тему: Формирование таблицы умножения.

Выполнил:

студент гр. 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