- •Постановка задачи.
- •Однородные структуры данных. Массивы и матрицы.
- •Реализация массивов в языках программирования
- •Физическая реализация массивов
- •Использование идеологии массивов для организации баз данных
- •Интерфейс программы.
- •Прокомментированный текст программы.
- •Алгоритмизация
- •Список литературы
Интерфейс программы.
Рис. 1. Вид главного окна.
Рис. 2. Главное окно после обработки.
Рис. 3. Окно открытия файла с диска.
Рис. 4. Окно сохранения файла на диск.
Рис. 5. Окно предварительного просмотра.
Прокомментированный текст программы.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void saveToolStripButton_Click(object sender, EventArgs e) //процедура сохранения файла на диск
{
string s = richTextBox1.Text;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
sw.WriteLine(s);
sw.Close();
}
}
private void newToolStripButton_Click(object sender, EventArgs e) // процедура очистки экрана, создания нового документа
{
richTextBox1.Clear();
printToolStripButton.Visible = false; //сделать кнопку печати невидимой
saveToolStripButton.Visible = false; //сделать кнопку сохранения невидимой
}
private void openToolStripButton_Click(object sender, EventArgs e)
{
string s = "";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(openFileDialog1.FileName);
s = sr.ReadToEnd();
richTextBox1.Text = s;
sr.Close();
printToolStripButton.Visible = true; //сделать кнопку печати видимой
saveToolStripButton.Visible = true; //сделать кнопку сохранения видимой
}
}
int [,] a=new int [11,11]; // Описать массив
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
printToolStripButton.Visible = true; //сделать кнопку печати видимой
saveToolStripButton.Visible = true; //сделать кнопку сохранения видимой
richTextBox1.Clear(); // очистка
int n = (int)numericUpDown1.Value; // прочитать размерность
int i = 0; // индекс строки
int j = 0; // индекс столбца
int p = 1; // записываемое число
int pr = n - 2; // от левого нижнего угла вправо
int lev = 0; // от нижнего правого угла вверх
int niz = n - 1; // от верхнего правого угла влево
int verh = 1; // от верхнего левого угла вниз
int sum = 0;
int k = 0;
for (k = 1; k <= n / 2; k++) // количество витков
{
for (j = lev; j <= pr; j++) // заполенние крайней нижней строки
{ a[niz, j] = p; sum = sum + p; p++;
}
for (i = niz; i >= verh; i--) // заполнение крайней правой строки
{ a[i, pr + 1] = p; sum = sum + p; p++;
}
for (j = pr + 1; j >= lev + 1; j--) // заполнение крайней верхней строки
{ a[verh - 1, j] = p; sum = sum + p; p++; }
for (i = verh - 1; i <= niz - 1; i++) // заполнение крайней левой строки
{ a[i, lev] = p; sum = sum + p; p++;
}
pr--; lev++; verh++; niz--;
}
//Заполнить центр
if (n % 2 != 0) { a[n / 2, n / 2] = p; sum = sum + p;
}
//Вывод массива
string s = "";
for (i = 0; i < n; i++)
{
s = "";
for (j = 0; j < n; j++)
{
s = s + a[i, j].ToString() + (char)9; ;
}
richTextBox1.AppendText(s + "\n\n");
}
richTextBox1.AppendText("Сумма=" +sum.ToString()); // Вывод суммы
}
private void printToolStripButton_Click(object sender, EventArgs e) // процедура предварительного просмотра перед печатью
{
printPreviewDialog1.PrintPreviewControl.Zoom = 1.0;
printPreviewDialog1.ClientSize = Screen.PrimaryScreen.Bounds.Size;
printPreviewDialog1.ShowDialog();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) // процедура внешнего вида текста для печати
{
e.Graphics.DrawString(richTextBox1.Text, this.Font, Brushes.Black, new PointF(20, 20));
}
}
}
