Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«Чувашский государственный университет имени
И.Н. Ульянова»
В. К Никишев
Современные языки программирования
Лабораторный практикум
2016
УДК 004.43(076.5)
ББК З973.2я73
Рецензенты:
Горский А.В . - канд. физ-мат. наук, доцент кафедры информатики и вычислительной техники Чувашского педагогического университета им. И.Я. Яковлева;
Григорьев Ю В. - канд. пед. наук, старший преподаватель кафедры информатики и вычислительной техники Чувашского педагогического университета им. И.Я. Яковлева.
Лабораторный практикум по современным языкам программирования предназначен для студентов кафедры компьютерных технологий. Разработан в соответствии с учебным планом направлений подготовки 230700 – «Прикладная информатика» и 231000 – «Программная инженерия» с учетом ФГОС.
В пособии представлены задания и примеры выполнения лабораторных работ по языкам программирования VC#, VС++, VB.NET, входящих в комплексы Visual Studio 2010-2015. Каждая работа содержит: условие задачи, алгоритм в виде блок-схемы, программы на языках программирования VC#, VС++, VB.NET и результаты вычислений.
Ответственный редактор канд. техн. наук,
Профессор В. П. Желтов.
Утвержено Учебно-методическим советом
ISBN © 2016
УДК 004.43(076.5)
ББК З973.2я73
Издательство Чувашского
Университета, 2016
Никишев В. К., 2016
ПРЕДИСЛОВИЕ
Microsoft.NET – современная среда для разработки различных информационных систем повышенной сложности (читается .Dot NET). В конце октября 2009 г. было объявлено о доступности версий Visual Studio 2010 и платформы .NET Framework 4. Инфраструктурой среды Microsoft.NET является платформа .NET Framework, которая определяет методы разработки и выполнения программного кода входящих в эту инфраструктуру языков программирования Visual C#.NET, Visual Basic.NET, Visual C++.NET и языка функционального программирования F.NET. Платформа включает следующие основные компоненты: Common Language Runtime (CLR) и .NET Framework Class Library (.NET FCL). Компонент CLR ‒ это набор служб, необходимых для выполнения управляемого кода. Компонент FCL ‒ это объектно ‒ ориентированная библиотека классов, интерфейсов и системы типов, классов (на платформе .NET все построено на структурах или классах), с помощью которых создаются: графический пользовательский интерфейс (Windows Forms); web-приложения и web-службы на основе технологии ASP.NET (Web Forms); разработки XML и Internet-протоколов (FTP, HTTP, SMTP, SOAP); разработки приложений, работающих с базами данных (ADO .NET) и многое другое.
Visual Studio ‒ это стратегический программный продукт для современных методов и способов построения продуктов. Основными достоинствами этой среды являются:открытость системы, которая позволяет включать в среду наряду с имеющимися языками программирования любые другие языки программирования ( например, язык Delpi Prizm или Delphi/Net), возможность разработки нескольких частей одного приложения на разных языках программирования, что дает возможность преодолеть языковый барьер, что является проблемой для современных программистов мира, возможность использования единых визуальных компонентов для всех языков программирования и много других возможностей. Настоящий лабораторный практикум , в котором приводятся примеры решения задач на языках программирования, входящих в среду Visual Studio 2010-2015 ( Visual C#.NET, Visual Basic.NET, Visual C++.NET ), будет способствовать дальнейшему освоению современного подхода к разработке программ сложных информационных систем различного назначения. Кроме того, в лабораторном практикуме содержатся программы, разработанные методом структурного программирования.
Лабораторная работа 1
Структура программ. Вычисление арифметических выражений. Консольный вариант
Цель работы: изучить структуру программ, основные операторы С#.NET, С++. NET, VB.NET для вычисления простых арифметических выражений с использованием структурного метода программирования. Получить навыки работ по составлению простейших программ в консольном варианте.
Программа на языке C#.NET. Консольный вариант.
Условие: разработать проект для вычисления выражения
c = a+b
Блок – схема алгоритма
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str;
Console.WriteLine("\n\n\n\n\n\n\n\n " + " Программа Калькулятор");
Console.WriteLine(" \n Выполнил Никишев ");
Console.ReadKey();
Console.ReadLine();
Console.Clear();
Console.WriteLine("Введите число а.");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Вы ввели: " + a);
Console.WriteLine("Введите число b.");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("Вы ввели: " + b);
int c=a+b;
Console.WriteLine("результат с=: " + c);
Console.WriteLine("\n Enter для выхода из программы");
str = Console.ReadLine();
Console.ReadKey();
}}
Результаты вычислений
Программа на языке C++. NET. Консольный вариант.
Условие: разработать проект для вычисления выражения
c = a+b
#include "stdafx.h"
#include "iostream"
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
char newline;
int _tmain(int argc, _TCHAR* argv[])
{
//Титульный лист
setlocale(LC_CTYPE,"Russian");//Перевод на русский язык
cout<<"\n\n\n\n\n\n\n\n\t\tЛабораторная работа по программированию";
cout<<"\n\t\t\tТема: Вычисление арифметических выражений ";
cout<<"\n\n\n\n\t\t\t\t\t Выполнил:";
cout<<"\n\t\t\t\ Профессор кафедры компьютерных технологий";
cout<<"\n\t\t\t\ Никишев Вячеслав Константинович\n\n\n\n\n\n\n\n\n\\n";
system("pause");
system("cls");
//Условие задачи
cout<<"\n\nУсловие: Вычислить выражение с=а+в \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ";
system("pause");
system("cls");
//Основная программа
char t;
float a,b,c;
cout<<"\n\Введите число а ";
cin>> a;
cout<<"\n\nВведите число b ";
cin>> b;
c=a+b;
cout<<"\n\nРезультат с= "<< c << endl;
cout<<"Повторить программу? (y/n) ";
cin>>t;
while (t=='y');//условие цикла с постусловием
}
Результаты вычислений
Программа на языке VB. Консольный вариант
Условие: разработать проект для вычисления выражения
c = a+b
Module Module1
Dim x As Integer
Dim s, a, b, c, m As Double
Dim str As String
Sub Main()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" ГОУ ВПО ЧГУ
им. И. Н. Ульянова")
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" Лабораторная работа по программированию ")
Console.WriteLine(" на тему 'Вычисление выражений'")
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("Выполнил: студент Сергеев Н. И.")
Console.WriteLine(" Проверил: профессор информатики Никишев В. К.")
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" Нажмите любую клавишу")
Console.ReadKey()
Console.Clear()
str = "g"
Do Until str = ""
Console.Clear()
Console.WriteLine("Введите число 'а'")
a = Console.ReadLine()
Console.WriteLine("Введите число 'b'")
b = Console.ReadLine()
‘ вычисление сложного выражения
'a = Math.Pow(2, 1 / x - 1) - Math.Sin(x - 1)
'b = Math.Pow(Math.Cos(1 - x), 2) + Math.Log(2 + Math.Abs(1 - x)) / Math.Log(2)
c = a + b
Console.WriteLine("Результат с")
Console.WriteLine(c)
Console.WriteLine()
Console.WriteLine("повторить? (нажмите клавишу)")
str = Console.ReadLine()
Loop End Sub End Module
Лабораторная работа 2. Структура программ. Вычисление арифметических выражений. Windows вариант
Цель работы: изучить структуру программ, основные операторы С#.NET, C++.NET, VB.NET для вычислений простых арифметических выражений с использованием структурного метода программирования. Получить навыки работ по составлению простейших программ в Windows варианте.
Программа на языке С#. Windows – проект.
Условие: разработать проекты для вычисления арифметических выражений c=( a+b)/d
Программа
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;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// кнопка вычислить
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;
namespace WindowsFormsApplication3
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
//кнопка вычислить
private void button1_Click(object sender, EventArgs e)
{
// ввод данных
double a = Convert.ToDouble(textBox1.Text);
double b = Convert.ToDouble(textBox2.Text);
double d = Convert.ToDouble(textBox2.Text);
//вычисление
double c = (a + b) / d;
//вывод результата
textBox3.Text = textBox3.Text + " c= " + Convert.ToString(c) + "\n ";
}
private void button2_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
Form4.ActiveForm.Hide();
f1.Show();
} }}
//кнопка выход
private void button2_Click(object sender, EventArgs e)
{
Close();
}
// кнопка условие
private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
Form1.ActiveForm.Hide();
f2.Show();
}
// кнопка автор
private void button4_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();
Form1.ActiveForm.Hide();
f3.Show();
} } }
Формы проекта
Блок - схема алгоритма
Программа на языке C++. Windows – проект.
Условие: разработать проект для вычисления выражений
c = (a+b) и z = (√(sin(x+y) + cos( x+ y))/(x +y4 * e (x+y))
#pragma once
#include "Form2.h"
#include "Form3.h"
#include "Form5.h"
namespace lab1 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
#pragma endregion
private:System::VoidначалоToolStripMenuItem_Click (System::Object^sender, System::EventArgs^ e) {
Form3 ^testDialog = gcnew Form3();
testDialog->ShowDialog(this);
}
private:System::VoidзаданиеToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e) {
Form2 ^testDialog = gcnew Form2();
testDialog->ShowDialog(this);
}
private:System::VoidобАвтореToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e) {
Form5 ^testDialog = gcnew Form5();
testDialog->ShowDialog(this);
}
private:System::VoidвыйтиToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e) {this->Close();
}};
//кнопка выход
private: System::Void button2_Click_1(System::Object^ sender, System::EventArgs^ e) {
this->Close();
}
//кнопка вычислить
private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) {
double a = Convert::ToDouble(textBox1->Text);
double b = Convert::ToDouble(textBox2->Text);
double z=(Math::Sqrt(Math::Sin((x+y)) + Math::Cos(x) * (x + y)) / (x + Math::Pow(y,4) * Math::Exp(x + y)));
textBox3->Text = Convert::ToString(c);
}
Формы проекта
Программа на языке VB. Windows вариант.
Условие: составить программу для вычисления выражения
с = ( a + b) и y = (x2 + 2*x – 3 + ( x + 1))
Public Class Form4
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
// Dim x, y As Double
// x = Val(TextBox1.Text)
// y = (x * x + 2 * x - 3 + (x + 1) )
// TextBox2.Text = Str(y)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim a, b, c As Double
a = Val(TextBox3.Text)
b = Val(TextBox4.Text)
c = a + b
TextBox5.Text = Str(c)
End Sub
End Class
Формы проекта
Программа на языке C#. Windows вариант.
Условие: разработать проект для вычисления выражения
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;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// кнопка начало
private void button1_Click(object sender, EventArgs e)
{
Form4 f4 = new Form4();
Form1.ActiveForm.Hide();
f4.Show();
}
//кнопка выход
private void button2_Click(object sender, EventArgs e)
{
Close();
}
// кнопка условие
private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
Form1.ActiveForm.Hide();
f2.Show();
}
// кнопка автор
private void button4_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();
Form1.ActiveForm.Hide();
f3.Show();
}
//вычислить задачу 1
private void button1_Click(object sender, EventArgs e)
{
// ввод данных
double a = Convert.ToDouble(textBox1.Text);
double b = Convert.ToDouble(textBox2.Text);
double x = Math.Tan(a); double y = Math.Tan(b);
double z1=(Math.cos(x)-Math.cos(y));
double z2=(Math.sin(x)-Math.sin(y));
double x=(Math.pow(z1,2)-Math.pow(z2,2))
//вывод результата
textBox3.Text = textBox3.Text + " z= " + Convert.ToString(c) + "\n ";
}}
Формы проекта
// вычислить задачу 2
private void button2_Click(object sender, EventArgs e)
{
double a = Convert.ToDouble(textBox1.Text);
double z = (1/((1+a*a+a)/(2*a+a*a)+2-((1-a+a*a)/(2*a-a*a)))*(5*a-2*a*a));
textBox4.Text = textBox4.Text + Convert.ToString(z);
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void решениеToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
Form1.ActiveForm.Hide();
f2.Show();
}
private void петровГеоргийToolStripMenuItem_Click(object sender, EventArgs e)
{ } }}
Формы проекта
Язык программирования С++. Windows проект.
Условие: вычислить z = √(sin(x+y) – cos(x+y))/(y4*exp(x+y)
#pragma once
#include "Form2.h"
#include "Form3.h"
#include "Form4.h"
namespace wsvc {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;}
#pragma endregion
private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) { }
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
Form2^ gForm2 = gcnew Form2;
gForm2->Show();
gForm2->Visible = true; }
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
Close(); }
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Form3^ gForm3 = gcnew Form3;
gForm3->Show();
gForm3->Visible = true; }
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
Form4^ gForm4 = gcnew Form4;
gForm4->Show();
gForm4->Visible = true;
}};}
Основная форма
#pragma endregion
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { }
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { }
private: System::Void button2_Click_1(System::Object^ sender, System::EventArgs^ e) {
this->Close(); }
// ввод данных
private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) {
double x = Convert::ToDouble(textBox1->Text);
double y = Convert::ToDouble(textBox2->Text);
double c=0;
double z=(Math::Sqrt(Math::Sin((x + y)) + Math::Cos(x) * (x + y)) / (x + Math::Pow(y,4) * Math::Exp(x + y)));
//c = a + b;
//label2->Text = Convert::ToString(cal->z);
label2->Text = Convert::ToString(z);
textBox3->Text = Convert::ToString(z);
}};}
Формы проекта
Язык программирования VB.NET. Windows проект.
Условие: вычислить y = (sin(8-2*x) + exp((1-x/4))/ (log(2+2*x) +
tg(2*x -8)*(6-x)) и сумму ряда
Блок-схема алгоритма
Public Class Form1
//меню
Private Sub УсловиеToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles УсловиеToolStripMenuItem.Click
Form3.Show()
End Sub
Private Sub Задача1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Задача1ToolStripMenuItem.Click
Form4.Show()
End Sub
Private Sub Задача2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Залача2ToolStripMenuItem.Click
Form5.Show()
End Sub
Private Sub ВыходToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem.Click
Close()
End Sub
Private Sub ЗадачиToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ЗадачиToolStripMenuItem.Click
End Sub
Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked
End Sub
End Class
Public Class Form4
// выход
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Close()
End Sub
//вычислить
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, y As Double
x = Val(TextBox1.Text)
y = ((Math.Sin(8 - 2 * x) + Math.Exp(1 - x / 4)) / (Math.Log10(2 + 2 * x) + Math.Tan(2 * x - 8))) * (6 - x)
TextBox2.Text = Str(y)
End Sub
End Class
Public Class Form5
Dim n, i As Integer
Dim k, l, s As Double
// вычисление суммы ряда
Private Sub Button1_Click(ByVal sender As System.Object, ByVal go As System.EventArgs) Handles Button1.Click
n = Val(TextBox1.Text)
k = 0
l = 0
s = 0
For i = 1 To n
k = k + Math.Cos(i)
l = l + Math.Sin(i)
s = s + k / l
Next i
TextBox2.Text = Str(s)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Close()
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
End Class
Формы проекта
Задания для выполнения лабораторных работ
.
.
.
где .
где .
Лабораторная работа 3 Вычисление суммы ряда.
Консольный вариант
Цель занятия: Изучить структуру программ, основные операторы С#.NET для. вычисления суммы ряда. Получить навыки работ по составлению простейших программ для вычисления суммы ряда в консольном варианте.
Программа на языке С#.Консольный вариант
Условие: вычислить сумму ряда s=(1+1/1) + (1+1/ 2) +....+
(1+1/n);
Блок – схема алгоритма
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str;
Console.WriteLine("\n\n\n\n\n\n\n\n " + " Программа сумма ряда");
Console.WriteLine( " Вычислить сумму ряда s=(1+1/1) + (1+1/ 2) +....+ (1+1/n)");
Console.WriteLine(" \n Выполнил Никишев ");
Console.ReadKey();
Console.ReadLine();
Console.Clear();
Console.WriteLine("Введите число n.");
int n = int.Parse(Console.ReadLine());
double s=0;
for(int i=1;i<=n;i++)
{
double a=(1+1/Math.Pow(i,i));
s = s + a;
}
Console.WriteLine("результат S=: " + s);
//Console.WriteLine("результат s=: {0:F9}" , s.ToString ());
Console.WriteLine("\n нажми Enter для выхода из программы");
str = Console.ReadLine();
Console.ReadKey();
//Console.ReadLine();
} }}
Программа на языке С++. Консольный вариант.
Условие: вычислить сумму s=(1+1/1) + (1+1/ 2) +....+ (1+1/n)
#include "stdafx.h"
#include "iostream"
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
char newline;
int _tmain(int argc, _TCHAR* argv[])
{
system("cls");
setlocale(LC_CTYPE,"Russian");//Перевод на русский язык
cout<<"\n\n\n\n\n\n\n\n\t\t Лабораторная работа по программированию";
cout<<"\n\n\n\n\n\n\n\n\t\t Тема: Вычисление суммы ряда";
cout<<"\n\n\n\n\t\t\t\t\t Выполнил :";
cout<<"\n\t\t\t\t\t профессор кафедры компьютерных технологий";
cout<<"\n\t\t\t\t\t Никишев Вячеслав Константинович"<<"\n\n\n\n\n\n\n"<<endl;//<<endl;
system("pause");
system("cls");
cout<<"\n\n Условие:" << endl;
cout<< "Вычислить сумму s=(1+1/1) + (1+1/ 2) +....+ (1+1/n)";
"<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"<<endl;
system("pause");
system("cls");
char t;
int k,i;
double s,p;
cout<<"Введите количество членов ряда\n";
cin>>k;
do
{
t=0;
s=0;
system("cls");
for (int i=1;i<k;i++)
{
s=s+(1+p/i);
}
cout<<"s="<< s<<endl;
cout<<"\n";
getch();
cout<<"\n";
cout<<"Повторить? (y/n) ";
cin>>t;
system("cls");
}
while (t=='y');
}
Результаты вычислений
Программа на языке VB. Консольный вариант Условие: вычислить сумму ряда s=(1+1/1) + (1+1/ 2) +....+ (1+1/n);
Словесный алгоритм:
1. Титульный лист ( тема, условие задачи, автор,кнопка начало);
2. Если кнопка Начало включена, то переход на 3, иначе на 1;
3. Ввод n ( текстовое окно);
4. Организация цикла от i=1 до n;
5. Вычисление a=(-1) ^ (i + 1) / (i * (i + 1))
6.Вычислить выражение s=s+a
7. Если i>n, то переход на 8, иначе на 5
8. Вывод результата вычисления s
Module Module1
Dim x, k As Integer
Dim s As Double
Dim str As String
Sub Main()
Dim k As Integer
Console.WriteLine()
Console.WriteLine(« ГОУ ВПО ЧГПУ им. И. Н. Ульянова»)
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(« Лабораторная работа по программированию «)
Console.WriteLine(« на тему “Вычисление суммы ряда”»)
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(« Выполнил: студент МиИ-3а Сергеев Н. И.»)
Console.WriteLine(« Проверил: профессор информатики Никишев В. К.»)
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(« Нажмите любую клавишу»)
Console.ReadKey()
Console.Clear()
str = «g»
s = 1
Do Until str = «»
Console.Clear()
Console.WriteLine(«Введите число “n”»)
x = Console.ReadLine()
For k = 1 To x
s = s * (1 + 1 / Math.Pow(k, x))
Next
Console.WriteLine(s)
Console.WriteLine()
Console.WriteLine(«повторить?(нажмите клавишу)»)
str = Console.ReadLine()
Loop
End Sub
End Module Результаты вычислений
Лабораторная работа 4. Вычисление суммы ряда. Windows-проект.
Цель занятия: изучить структуру программ, основные операторы С#.NET для. вычисления суммы ряда. Получить навыки работ по составлению простейших программ для вычисления суммы ряда в консольном варианте.
Программа на языке С#. Windows-проект.
Условие: задача 1: вычислить сумму ряда ),
задача 2: вычислить сумму ряда с заданной точностью
Блок-схема алгоритма
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;
namespace WindowsFormsApplication23
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
// Кнопка задание 1
private void button1_Click(object sender, EventArgs e)
{
int n = Convert.ToInt16(textBox1.Text);
double s=0;
for(int i=1;i<=n;i++)
{
double a=(1+1/Math.Pow(i,i));
s = s + a;
}
textBox2.Text = Convert.ToString(s);
}
private void button2_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
Form3.ActiveForm.Hide();
f1.Show();
} }}
Формы проекта
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;
namespace WindowsFormsApplication23
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
// Кнопка вычислить
private void button1_Click(object sender, EventArgs e)
{
double x = Convert.ToDouble(textBox1.Text);
double eps = Convert.ToDouble(textBox2.Text);
int n = 0;
double a = Math.Pow(-1, n + 1) *Math.Pow(x, 2 * n + 1) / (2*n + 1);
double s = 0;
while (Math.Abs(a) >= eps)
{
n = n + 1;
a = Math.Pow(-1, n + 1) * Math.Pow(x, 2 * n + 1) / (2 * n + 1);
s = s + a;
}
textBox3.Text = Convert.ToString(s);
textBox4.Text = Convert.ToString(n);
}
// Кнопка возврат
private void button2_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
Form6.ActiveForm.Hide();
f1.Show();
} } }
Форма проекта
Программа на языке C ++.NET. Windows проект.
Условие: вычислить сумму ряда s=1+p/i.
#pragma endregion
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button2_Click_1(System::Object^ sender, System::EventArgs^ e) {
this->Close();
}
private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) {
int n = Convert::ToInt32(textBox1->Text);
double s=0;
int i;
double r,p;
p=1;
for(int i=1;i<=n;i++)
{
r=1+p/i;
s=s+r;
}
//label2->Text = Convert::ToString(cal->z);
label2->Text = Convert::ToString(r);
textBox3->Text = Convert::ToString(s);
}};}
Программа на VB.NET. Windows проект.
Условие: вычислить произведение ряда s = 1/sin(n)
Public Class Form4
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Form5.Show()
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, n As Integer, p, s As Single
n = Val(TextBox1.Text)
p = 1 : s = 0
For i = 1 To n
s = s + Math.Sin(i)
p = p * (i / s)
Next
TextBox2.Text = p
End Sub
End Class
Public Class Form5
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim s, p, t As Single, n As Integer
s = 0
n = 1
t = Val(TextBox1.Text)
p = Math.Pow(-1, n) / Math.Pow(n, 2)
s = s + p
Do Until Math.Abs(p) < t
n = n + 1
p = Math.Pow(-1, n) / Math.Pow(n, 2)
s = s + p
Loop
TextBox2.Text = Str(s)
TextBox3.Text = Str(n)
TextBox4.Text = Str(Math.Abs(s - Math.Pow(Math.PI, 2) / 12))
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form1.Show()
Me.Hide()
End Sub
End Class
Формы проекта
Задания для лабораторной работы
1.
2.
3.
4. 1 + cos(
5.
6.
7.
8.
9.
10.
11.
12. 𝑠 =
13. S = 1 + +….+
14.
15. S = .
) ∙ (1 +
17. p ) ∙ (1 +
18. p =
20. p = .
21. s = .
22. s = +
23. s =
24. s = .
25.
26.
27.
28.
29.
30.
Лабораторная работа 5. Одномерные массивы. Консольный
вариант
Цель занятия: изучить структуру программ, основные операторы языков С#, C++, VB.NET для ввода, преобразования и вывода одномерного числового массива в консольном варианте.
Программа на языке С#.NET. Консольный вариант.
Условие: создать одномерный массив. Преобразовть в массивы положительных и отрицательных чисел.
Блок – схема алгоритма
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
String й = "Да";
while (й == "Да")
{
Console.WriteLine("\n\n\n\n\n\n\n\n " + " одномерные массивы в консольном варианте ");
Console.WriteLine();
Console.WriteLine("Условие : Создать массив, получить массивы положительных и отрицательных чисел");
Console.WriteLine();
Console.WriteLine(" Выполнил профессор Никишов В.К.");
Console.WriteLine();
Console.WriteLine();
Console.ReadKey();
Console.Clear();
// int[] для_конструктора = new int[25];
Console.WriteLine("Введите размерность массива :");
int n = int.Parse(Console.ReadLine());
int[] mas = new int[25];
int j;
Random rnd = new Random();
string s = "";
for (int i = 0; i < n; i++)
{
mas[i] = rnd.Next(-20, 20);
s = s + mas[i].ToString() + " ";
//
}
Console.WriteLine(" Исходный массив");
Console.WriteLine(s + " ");
int[] masP = new int[25];
j = 0;
s = "";
for (int i = 0; i < n; i++)
{
if (mas[i] > 0) { masP[j] = mas[i]; s = s + masP[j].ToString() + " "; j++; }
}
Console.WriteLine(" Массив из положительных чисел");
Console.WriteLine(s + " ");
j = 0;
s = "";
for (int i = 0; i < n; i++)
{
if (mas[i] < 0) { masP[j] = mas[i]; s = s + masP[j].ToString() + " "; j++; }
}
Console.WriteLine(" Массив из отрицательных чисел");
Console.WriteLine(s + " ");
s = "";
int[] a = new int[25];
for (int i = 0; i < n; i++)
{
s += a[i].ToString() + " ";
Console.ReadKey();
Console.WriteLine("Повторить программу ? Да/Нет ");
й = Console.ReadLine();
Console.Clear();
} } }
Программ на языке С#.NET. Консольный вариант
Условие:создать одномерный массив, вычислить максимальное число, вывести последний положительный элемент, ввести числа А В и вывести элементы массива, которые не входят в диапазон введенных чисел.
Блок – схема алгоритма
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace laba5_m_
{
class Program
{
static void Main(string[] args)
{
string str;
Console.WriteLine("\n\n\n\n\n\n\n\n " + " Программа одномерные массивы");
Console.WriteLine("Создать одномерный массив размерностью n. Вычислить максимальное число, последнее положительное число.");
Console.WriteLine(" Ввести числа А В и вывести элементы массива , которые не входят в диапазон чисел А В ");
Console.WriteLine(" \n Выполнил Никишев ");
Console.ReadKey();
Console.ReadLine();
Console.Clear();
Console.WriteLine("Введите число n.");
int n = int.Parse(Console.ReadLine());
int[] mas = new int[n];
Random rnd = new Random();
for (int i = 0; i < mas.Length; i++)
{
mas[i] = rnd.Next(-5, 11);
}
Console.WriteLine("Исходный массив: ");
for (int i = 0; i < mas.Length; i++)
Console.Write(mas[i] + " ");
Console.WriteLine();
double a, b;
Console.Write("Введите А: ");
a = double.Parse(Console.ReadLine());
Console.Write("Введите В: ");
b = double.Parse(Console.ReadLine());
int max = mas.Max();
Console.WriteLine("Максимальное число: {0}\n",max);
int index=0;
for (int i = 0; i < mas.Length; i++)
{
if (mas[i] > 0)
index = i;
}
Console.WriteLine("Последние положительное число: {0}\n",mas[index]);
int sum=0;
for (int i = 0; i <= index; i++)
{
sum = sum+mas[i];
}
Console.WriteLine("Сумма: {0}\n",sum);
for (int i = 0; i < mas.Length; i++)
{
if ( Math.Abs(mas[i])>=a && Math.Abs(mas[i]) <= b)
{
mas[i] = 0;
} }
Boolean tmp=false;
for (int i = mas.Length - 1; i >= mas.Length/2; i--)
{
if (mas[i] != 0)
{
for (int j = 0; j <= mas.Length / 2; j++)
{
if (mas[j] == 0) {
mas[j] = mas[i];
mas[i] = 0;
} } } }
for (int i = 0; i < mas.Length; i++)
Console.Write(mas[i] + " ");
Console.ReadKey();
Console.WriteLine("\n нажми Enter для выхода из программы");
str = Console.ReadLine();
Console.ReadKey();
//Console.ReadLine();
} }}
Программа на языке С++.NET. Консольный вариант
Условие: ввести случайный массив рзмерностью n , создать массивы из положительных, отрицательных элементов и из нулей.
#include "stdafx.h"
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <iostream>
#include <ctime>
using namespace std;
int _tmain(int argc, int n, int k, _TCHAR* argv[])
{
setlocale( LC_ALL,"Russian" );
cout << "28 вар.Одномерные массивы. Консольный вариант. Выполнил Никишев Вячеслав Константинеович\n";
cout << "Введите n - размерность массива, но меньше 25\n";
k=0;
n=0;
while (k==0)
{
cin >> n;
if (n>25)
{printf("Задана размерность массива, превышающая норму, введите вновь размерность массива меньше 25\n");
}
else
if (n<=0)
{printf("Задана размерность массива меньше 1, введите размерность массива меньше 25, но больше 0\n");
}
else
k=1;
}
printf("Введена размерность массива n =%d\n", n);
int a[25];
srand(time(NULL)|clock());
for (int i=1;i<=n;i++)
{//cin >> a[i];
a[i]=-10+(rand()%(20));
}
printf("Исходный массив\n");
for (int i=1;i<=n;i++)
{
cout << a[i] << " ";
}
printf("\nМассив из положительных чисел\n");
for (int i=1;i<=n;i++)
{if (a[i]>0)
cout << a[i] << " ";
}
printf("\nМассив из отрицательных чисел\n");
for (int i=1;i<=n;i++)
{if (a[i]<0)
cout << a[i] << " ";
}
printf("\nМассив из нулей\n");
for (int i=1;i<=n;i++)
{if (a[i]==0)
cout << a[i] << " ";
}
cout << "\n";
system("pause");
return 0;
}
Результт решения
Программа на языке vb.net. Консольный вариант
Условие: ввести и вывести одномерный массив чисел.
Module Module1
Dim x, i, n As Integer
Dim a, b, c, m As Double
Dim s(100) As Integer
Dim str As String
Sub Main()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" ЧГУ им. И. Н. Ульянова")
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" Лабораторная работа по программированию ")
Console.WriteLine(" на тему ' Одномерные массивы'")
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" Выполнил: студент Сергеев Н. И.")
Console.WriteLine(" Проверил: профессор информатики Никишев В. К.")
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine(" Нажмите любую клавишу")
Console.ReadKey()
Console.Clear()
str = "g"
Do Until str = ""
Console.Clear()
' randomaze()
Console.WriteLine("Введите число 'n'")
n = Console.ReadLine()
For i = 1 To n
s(i) = Int(Rnd(1) * 21 - 10)
Next i
For i = 1 To n
Console.WriteLine(s(i), "")
' Console.WriteLine()
Next i
Console.WriteLine()
Console.WriteLine("повторить? (нажмите клавишу)")
str = Console.ReadLine()
Loop
End Sub
End Module
Лабораторная работа 6. Одномерные массивы. Windows вариант
Цель занятия: изучить структуру программ, основные операторы языков С#, C++, VB.NET для вввода, преобразования и вывода одномерного числового массива в консольном варианте.
Программа на языке C#. NEN. Windows проект.
Условие: ввести одномерный массив чисел и выполнить сортировку методом вставки по возрастанию и убыванию.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
int[] mas = new int[25];
int[] mas1 = new int[25];
private void button1_Click(object sender, EventArgs e)
{
int n = Convert.ToInt16(textBox1.Text);
Random rnd = new Random();
int[] mas = new int[25];
for (int i = 1; i < n + 1; i++)
{
mas[i] = rnd.Next(-20, 41);
mas1[i] = mas[i];
textBox2.Text = textBox2.Text + " " + Convert.ToString(mas[i]);
}
// int[] mas1 = new int[25];
for (int i = 1; i < n-1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (mas1[i] > mas1[j]) { int d = mas1[j]; mas1[j] = mas1[i]; mas1[i] = d; }
} }
for (int i = 1; i < n; i++)
textBox3.Text = textBox3.Text + " " + mas1[i];
for (int i = 1; i < n-1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (mas1[i] < mas1[j]) { int d = mas1[j]; mas1[j] = mas1[i]; mas1[i] = d; }
} }
for (int i = 1; i < n; i++)
textBox4.Text = textBox4.Text + " " + mas1[i];
}
private void button2_Click(object sender, EventArgs e)
{
Close();
} } }
Формы проекта
Программа на языке VB.NET. Windows проект.
Условие:создать одномерный массив и найти максимальное и минимальное значения, составить новый массив в интервале от min до max и заполнить числами, которых нет в первоначальном массиве.
Блок – схема алгоритма
Public Class Form2
Dim А(20) As Integer
Dim i, j, n, max, min, k As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
n = Val(TextBox1.Text)
TextBox2.Text = " "
Randomize()
For i = 1 To n
А(i) = Int(Rnd(1) * 21 - 10)
TextBox2.Text = TextBox2.Text + " " + Str(s(i))
Next i
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox3.Text = " "
max = -20; min = 20
For i = 1 To n
If А(i) > max Then max = А(i)
If А(i) < min Then min = А(i)
Next i
TextBox4.Text = min
TextBox5.Text = max
k = 0
For i = min To max
For j = 1 To n
If i <> А(j) Then k = k + 1
Next j
If k = n Then TextBox3.Text = TextBox3.Text + " " + Str(i)
k = 0
Next i
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Close()
End Sub
End Class
Формы проекта
Программ на языке VB.NET. Windows проект.
Условие: создать одномерный массив и выполнить сортировки методом «пузырька» и методом обмена на языке VB.NET
Public Class Form1
Dim M(50) As Integer
Dim n As Integer
Dim u As Integer
Dim i As Integer
Dim j As Integer
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Close()
End Sub
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Randomize()
textBox2.Clear()
n = Val(textBox1.Text)
For Me.i = 1 To n
M(i) = Int(Rnd() * 100 - 50)
textBox2.Text = textBox2.Text + " " + Str(M(i))
Next i
For Me.i = 1 To n ' Где конечное число цикла равно количеству чисел в массиве
For Me.j = 1 To n - 1 ' конечное число цикла равно количеству чисел в массиве минус один
If M(j) > M(j + 1) Then ' Если предыдущие число больше следущего, то
u = M(j) ' Запоминаем предыдущие число в переменную u
M(j) = M(j + 1) ' Предыдущие число приравниваем следующему
M(j + 1) = u ' А следующие число заменяем числом u
End If
Next j
Next i
TextBox3.Clear()
For Me.i = 1 To n ' Распечатываем весь получившийся массив
TextBox3.Text = TextBox3.Text + " " + Str(M(i)) ' На textBox3
Next i
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
'Randomize()
For Me.i = 1 To n - 1 ' Где конечное число цикла равно количеству чисел в массиве
For Me.j = i + 1 To n
If M(i) < M(j) Then
u = M(i)
M(i) = M(j)
M(j) = u
End If
Next j
Next i
TextBox3.Clear()
For Me.i = 1 To n ' Распечатываем весь получившийся массив
TextBox3.Text = TextBox3.Text + " " + Str(M(i)) ' На textBox3
Next i
End Sub
End Class
Формы проекта
Блок – схема алгоритма
Программа на языке VB.NET. Windows проект.
Условие: разработать одномерный массив с помощью
компонента( класса) ArrayList с использовнием функций компонента: поиск, сортировка, добавление и удаление массива.
Блок – схема алгоритма
Public Class Form2
Dim n, i, t, p, z As Integer
Dim strana, transport As String
Dim x As String
Dim mylist As New ArrayList()
Dim f As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
n = Val(TextBox1.Text) 'ввод количества предложений
ListBox1.Items.Clear()
mylist.Clear()
For Me.i = 1 To n 'ввод данных
strana = InputBox("введите элемент массива")
'вывод в Listbox
mylist.Add(strana)
ListBox1.Items.Add(Str(i) + " " + mylist.Item(i - 1))
Next
End Sub
Private Sub НазадToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НазадToolStripMenuItem.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'добавление нового элемента
strana = InputBox("введите элемент массива")
mylist.Add(strana)
ListBox1.Items.Add(Str(i) + " " + mylist.Item(ListBox1.Items.Count))
i = i + 1
n = n + 1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
For Me.i = 1 To n 'сортировка
mylist.Sort()
ListBox1.Items.Add(Str(i) + " " + mylist.Item(i - 1))
Next
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'удаление элемента
mylist.Remove(mylist.Item(f))
n = n - 1
ListBox1.Items.Clear()
For Me.i = 1 To n
ListBox1.Items.Add(Str(i) + " " + mylist.Item(i - 1))
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged: f = ListBox1.SelectedIndex
End Sub
‘поиск
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
x = TextBox2.Text
If mylist.IndexOf(x) >= 0 Then
ListBox1.SelectedIndex = mylist.IndexOf(x)
Else : MsgBox("по вашему запросу ничего не найдено")
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
End Class
Формы проекта
Задания для лабораторных работ
1. Найти сумму положительных элементов массива.
2. Найти сумму всех элементов массива, кратных 5.
3. Найти сумму всех четных элементов массива, стоящих на четных местах.
4. Найти сумму первых пяти элементов массива.
5. Найти сумму элементов с k1 по k2, где k1, k2 вводятся с клавиатуры.
6. Найти сумму элементов, больших данного числа А.
7. Найти сумму элементов, принадлежащих промежутку от А до В.
8. Найти номера всех отрицательных элементов массива (вывести их на экран). Если таких элементов нет, то сообщить об этом.
9. Найти номера всех элементов с максимальным значением.
10. Найти количество отрицательных нечетных элементов массива.
11. Сколько элементов массива превосходят по модулю заданное число А?
12. Найти все элементы массива, кратные 3 или 5. Сколько их?
13. Есть ли в данном массиве два соседних положительных элемента? Найти номера первой и последней пары.
14. Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одно из них.
15. Изменить знак у максимального по модулю элемента массива.
16. Заменить все четные элементы массива их квадратами, а нечетные – удвоить.
17. Вычесть из положительных элементов элемент с номером k1, а к отрицательным прибавить элемент k2, нулевые элементы оставить без изменения.
18. К четным элементам прибавить А, а из элементов с четными номерами вычесть В.
19. Даны два целочисленных массива, состоящие из одинакового числа элементов. Получить третий массив той же размерности, каждый элемент которого равен большему из соответствующих элементов данных массивов.
20. Дан первый член геометрической прогрессии и её знаменатель. Найти первые n членов этой прогрессии.
21. Получить первые n чисел Фибоначчи, - первые два числа равны 1, а каждое следующее сумме двух предыдущих.
22. Дан одномерный массив А, состоящий из 2n элементов. Поменять его половины следующим образом: первый элемент поменять с последним, второй – с предпоследним и т.д.
23. Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным.
Лабораторная работа 7. Двумерные массивы.
Windows вариант.
Цель занятия: изучить структуру программ, основные операторы языков С#, C++, VB.NET для вввода, преобразования и вывода двумерного числового массива в Windows варианте.
Программа на языке С#.NET. Windows варианте.
Условие: создать двумерный массив и вывести в таблицу, выполнить преобразования, если числа положительные, то значения увелить в два раза, если числа отрицательные, то записать нули, а затем вывести в новую таблицу.
Блок - схема алгоритма
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;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int n, m;
double[,] a;
double[,] b;
// ввод размерности
private void button1_Click(object sender, EventArgs e)
{
m = Convert.ToInt16(textBox1.Text);
n = Convert.ToInt16(textBox2.Text);
a = new double[m, n];
b = new double[m, n];
// Чистка таблицы DGView
int k = 0;
k = dataGridView1.ColumnCount;
if (k != 0)
for (int i = 0; i < k; i++)
dataGridView1.Columns.RemoveAt(0);
dataGridView2.Columns.Clear();
// dataGridView3.Columns.Clear();
//Заполнение DGView столбцами
AddColumns(n, dataGridView1);
AddColumns(n, dataGridView2);
//Заполнение DGView строками
AddRows(m, dataGridView1);
AddRows(m, dataGridView2);
}
private void AddColumns(int n, DataGridView dgw)
{
//добавляет n столбцов в элемент управления dgw
//Заполнение DGView столбцами
DataGridViewColumn column;
for (int i = 0; i < n; i++)
{
column = new DataGridViewTextBoxColumn();
column.DataPropertyName = "Column" + i.ToString();
column.Name = "Column" + i.ToString();
dgw.Columns.Add(column);
} }
private void AddRows(int m, DataGridView dgw)
{
//добавление m строк в элемент управления dgw
//Заполнение DGView строками
for (int i = 0; i < m; i++)
{
dgw.Rows.Add();
dgw.Rows[i].HeaderCell.Value
= "row" + i.ToString();
} }
// создание массива
private void button2_Click(object sender, EventArgs e)
{ {
string elem = "";
bool correct = true;
Random rnd = new Random();
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
try
{
// elem = dataGridView1.Rows[i].Cells[j].Value.ToString();
// a[i, j] = Convert.ToDouble(elem);
// label8.Text = "";
//mas[i] = rnd.Next(-20, 20);
a[i, j] = rnd.Next(-20, 40);
// dataGridView1.Cells[i,J] = a[i, j].ToString();
// elem = dataGridView1.Rows[i].Cells[j].Value.ToString();
// a[i, j] = Convert.ToDouble(elem);
dataGridView1.Rows[i].Cells[j].Value = a[i, j].ToString();
}
catch (Exception any)
{
label8.Text = "Значение элемента" +
"a[" + i.ToString() + ", " + j.ToString() + " ]"
+ " не корректно. Повторите ввод!";
dataGridView1.Rows[i].Cells[j].Selected = true;
return;
} } } }
// новый массив
private void button3_Click(object sender, EventArgs e)
{
MultMatr(a,b);
FillDG();
// int m = a.GetLength(0);
// int n = a.GetLength(1);
}
void MultMatr(double[,] a, double[,] b)
{
for(int i=0; i < m; i++)
for (int j = 0; j < n; j++)
{
if (a[i,j]>0) {b[i,j]=2*a[i,j];}
} }
void FillDG()
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
dataGridView2.Rows[i].Cells[j].Value
= b[i, j].ToString();
}
private void button4_Click(object sender, EventArgs e)
{
Close();
} }}
Формы проекта
Программа на языке VВ.NET. Windows проект.
Условие: создть двумерный массив в пределах от -100 до 100 и вывести в компонент ListBox, найти максимальное и минимальные значения.
Блок – схема алгоритма
Public Class Form2
Private Sub назадToolStripMenuItem_Click(ByVal sender
Form1.Show()
Me.Hide()
End Sub
Private Sub вывестиToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles вывестиToolStripMenuItem.Click
Dim n, m, i, j As Integer
Dim a(100, 100) As Integer
Dim min, max As Double
Dim k As String
n = Val(TextBox1.Text)
m = Val(TextBox2.Text)
k = «»
For i = 1 To n
For j = 1 To m
a(i, j) = Int(Rnd(1) * (-200) + 100)
k = k + « « + Str(a(i, j))
Next
ListBox1.Items.Add(k)
k = «»
Next
min = a(1, 1); max=a(1,1)
For i = 1 To n
For j = 1 To m
If a(i, j) > max Then max = a(i, j)
If a(i, j) < min Then min = a(i, j)
Next Next
TextBox3.Text = Str(min)
TextBox4.Text = Str(max)
End Sub; End Class
Формы проекта
Задания для лабораторной работе
1. Дана матрица А(nxn). Написать программу нахождения минимального элемента из (max1, ...,maxn), где maxi - максимальный в i - той строке.
2. В матрице А(nxn) найти максимальный и минимальный элементы. Указать их разность, а также строки и столбцы, на пересечении которых они находятся.
3. Дана матрица А(nxn). Написать программу, которая находит максимальный и минимальный элементы этой матрицы и переставляет столбцы и строки так, чтобы эти элементы поменялись местами.
4. Дана матрица А(nxn). Написать программу, которая находит максимальную сумму элементов, стоящих на диагоналях, параллельных главной.
5. Даны две матрицы А(nxn) и B(nxn). Написать программу нахождения максимального значения max(S1, S2, ..., Sn), где Sk - скалярное произведение k - й строки матрицы А на k - й столбец матрицы В.
6. Дана матрица А(nxn) с положительными элементами. Написать программу, которая находит среди элементов матрицы тройки таких элементов (aji-1, aji, aji+1), чтобы существовал треугольник со сторонами, равными этим числам.
7. Дана прямоугольная матрица А(nxm). Заменить наименьший элемент каждой строки, начиная со второй, наибольшим элементом предыдущей строки.
8. Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.
9. Найти все различающиеся элементы целочисленной квадратной матрицы размерностью nxn.
10. Дана матрица А(nxn). Написать программу, которая находит максимальный по абсолютной величине элемент и переставляет строки и столбцы так, чтобы он оказался в левом верхнем углу.
11. Дана матрица А(nxn). Написать программу поиска одинаковых элементов в этой матрице.
12. Дана матрица А(nxn). Написать программу нахождения максимального элемента матрицы, принадлежащего отрезку [p, q].
13. Дана матрица А(nxn). Написать программу, которая упорядочивает строки этой матрицы по убыванию первых элементов строк.
14 Дана матрица C(nxn). Написать программу, которая
упорядочивает столбцы этой матрицы по возрастанию
первых элементов столбцов.
15.Дана матрица F(nxn). Написать программу, которая
упорядочивает строки этой матрицы по возрастанию
первых элементов ее строк.
16. Дана матрица K(nxn). Написать программу, которая упорядочивает столбцы этой матрицы по возрастанию.
17. Дана матрица B(nxn). Написать программу, которая упорядочивает элементы этой матрицы по убыванию.
18. Расположить столбцы матрицы D(mxn) в порядке возрастания элементов k - строки (1<k<n).
19. Заданы квадратная матрица А порядка n и число k(1<=k<=n). Столбец с минимальным по модулю элементом в k - той строке переставить с k - тым столбцом.
20. Задана квадратная матрица порядка n. Исключить из нее строку и столбец, на пересечении которых расположен минимальный элемент главной диагонали.
21. Дана матрица А(nxn). Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент матрицы был расположен на пересечении k - той строки и k - того столбца.
22. Дана целочисленная матрица размерностью nxm. Найти матрицу, получающуюся из данной перестановкой строк - первой с последней, второй с предпоследней и т.д.
23. Дана целочисленная матрица размерностью nxm, целые числа k, l (1<=k<=n, 1<=l<=m, k<>l). Преобразовать матрицу так, чтобы строка с исходным номером k непосредственно следовала за строкой с исходным номером l.
Лабораторная работа 8. Символы.
Цель занятия: Изучить структуру программ, основные операторы языков С#, С++, VB.NET для построения прогрмм с символьными данными.
Программа на языке С#.NET. Windows проект.
Условие: ввести сивольную строку и заменить все символы «а» на символы «в»
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;
namespace WindowsChar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Console.WriteLine("Работа по программированию.\nЗадание: Заменить в предложении буквы 'a' на 'в'");
// Console.WriteLine("Работу выполнил студент гр. ДиКТ 31-12 Николаев Николай");
// Console.WriteLine("Введите предложение:");
string name = Convert.ToString(textBox1.Text);
char[] array = name.ToCharArray();
textBox2.Text = Convert.ToString(name.Replace("а", "в"));
//Console.WriteLine(name.Replace("а", "в"));
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void условиеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Заменить в предложении буквы 'a' на 'в'");
}
private void авторToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Работу выполнил студент гр. ДиКТ 31-12 Николаев Николай");
} }}
Форма проекта
Программа на языке С#.NET. Windows проект.
Условие: ввести символьную строку и вычислить количество слов в строке.
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;
namespace count_words
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string text = "";
string[] textArr = text.Split(new[] { "\r\n", "\n", " ", "," }, StringSplitOptions.RemoveEmptyEntries);
text = richTextBox1.Text;
label2.Text = text.Split(' ').Length.ToString();
} }}
Форма проекта
Программа на языке VB.NET. Windows проект.
Условие: разработать проект, в котором необходимо задать одномерный символьный массив с данными: фамилии сотрудников, их должности и оклады. Вывести на экран фамилии сотрудников, которые имиеют минимальный оклад. Данные вводить спомощью текстовых окон, а вывод реализовать с помощью списков listbox( combobox)
Блок – схема алгоритма
Public Class Form2
Dim i As Integer
Dim familia(20), dolznost(20), b(20) As String
Dim oklad(20), a(20) As Double
Private Sub НазадToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НазадToolStripMenuItem.Click
Me.Hide()
Form1.Show()
End Sub
Private Sub ВыходToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem.Click
End
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim k, l, min, n As Integer
n = TextBox2.Text
If i = n Then
i = 0
ListBox1.Items.Clear()
ListBox1.Items.Clear()
End If
i = i + 1
familia(i) = TextBox1.Text
dolznost(i) = ComboBox1.Text
oklad(i) = NumericUpDown1.Value
For k = 1 To n - Len(familia(i))
familia(i) = familia(i) + ““
Next
If (ComboBox1.Text = «Выберите должность») Or(TextBox1.Text = ““) Then
MessageBox.Show(«Не введена фамилия или не выбрана дожность», «Ошибка»)
i = i - 1
Else
ListBox1.Items.Add(familia(i) + ““ + dolznost(i) + ““
+ Str(oklad(i)))
End If
l = 1
If i = n Then
For k = 1 To n
If dolznost(k) = «Инженер» Then
a(l) = oklad(k)
b(l) = familia(k)
l = l + 1
End If
Next
min = a(1)
For k = 1 To l - 1
If a(k) < min Then min = a(k)
Next
For k = 1 To l - 1
If a(k) = min Then ListBox2.Items.Add(b(k) + ““
+ Str(a(k)))
Next
End If
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
End Class
Public Class Form1
Private Sub ЗаданиеToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ЗаданиеToolStripMenuItem.Click
Me.Hide()
Form2.Show()
End Sub
Private Sub АвторToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles АвторToolStripMenuItem.Click
Me.Hide()
form3.show()
End Sub
Private Sub ВыходToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem.Click
End
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Форма проекта
Задания для лабораторной работы
Лабораторная работа 9. Графика.
Цель занятия: Изучить структуру программ, основные операторы языков С#, С++, VB.NET для построения графических фигур. Получить навыки работ по составлению простейших графических программ
Прогпамма на языке С#.NET. Windows проект.
Условие: Нарисовать на форме желтого цвета прямоугольник зеленного цвета и эллипс красного цвета
Using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Brush{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
//Задаем тип и цвет кисти
SolidBrush myBrush = new SolidBrush(System.Drawing.Color.Green);
//Объявляем объект myRectangle
Rectangle myRectangle = new Rectangle(10, 15, 150, 200);
//рисуем и заполняем фигуру
e.Graphics.FillRectangle(myBrush,myRectangle);
//Высвобождаем память, выделенную объекту myBrush
myBrush.Dispose();
}
private void pictureBox1_Paint(object sender,PaintEventArgs e)
{
//Задаем тип и цвет кисти
SolidBrush myBrush = new сolidBrush(System.Drawing.Color.Red);
//Объявляем объект myRectangle
Rectangle myRectangle = new Rectangle(10, 15, 150, 200);
e.Graphics.FillEllipse(myBrush, myRectangle);
//Высвобождаем память, выделенную объекту myBrush
myBrush.Dispose(); }
Формы проекта
Программа на языке С#.NET. Windows проект.
Условие: Нарисовать и закрасить вложенные фигуры
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace _llabb
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Pen myPen = new Pen(Color.Black, 3);
SolidBrush myB1 = new SolidBrush(System.Drawing.Color.Blue);
SolidBrush myB2 = new SolidBrush(System.Drawing.Color.Red);
e.Graphics.FillRectangle(myB2, 0,0,1280,1024);
e.Graphics.DrawLine(myPen, 240, 60, 120, 220);
e.Graphics.DrawLine(myPen, 240, 60, 360, 220);
e.Graphics.DrawLine(myPen, 120, 220, 360, 220);
e.Graphics.FillPolygon(myB1, new Point[]
{
new Point(240,60),
new Point(120,220),
new Point(360,220),
});
e.Graphics.DrawEllipse(myPen, 190, 115, 100, 100);
e.Graphics.FillEllipse(myB2, 190, 115, 100, 100);
myPen.Dispose();
myB1.Dispose();
myB2.Dispose();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void authorToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Show();
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 rfm = new Form3();
rfm.Show();
} } }
Форма проекта
Программа на языке С++.NET. Windows проект.
Условие: нарисовать вложенные фигуры.
#include "stdafx.h"
#include "graf.h"
#include "grafDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
MessageBox("Нарисовать прямоугольник в окружности на фоне ромба ","Условие");
}
void CGrafDlg::OnAvtor()
{
// TODO: Add your command handler code here
MessageBox("студентка ФМФ гр.ИМ-3 Павлова Любовь","Автор");
}
void CGrafDlg::OnFigura()
{
CClientDC pDC(this);
CBrush b_red,b_zel,b_sin;
b_red.CreateSolidBrush(RGB(200,0,55));
b_zel.CreateSolidBrush(RGB(0,255,0));
b_sin.CreateSolidBrush(RGB(0,0,255));
pDC.SelectObject(b_red);
pDC.Ellipse(110,50,290,230);
pDC.SelectObject(b_zel);
pDC.Rectangle(150,100,250,180);
pDC.SelectObject(b_sin);
pDC.MoveTo(200,10);
pDC.LineTo(330,140);
pDC.MoveTo(330,140);
pDC.LineTo(200,270);
pDC.MoveTo(200,270);
pDC.LineTo(70,140);
pDC.MoveTo(70,140);
pDC.LineTo(200,10);
pDC.FloodFill(200,15,RGB(0,0,0));
b_red.DeleteObject();
b_zel.DeleteObject();
b_sin.DeleteObject();
}
void CGrafDlg::OnOk()
{
CDialog::OnOK();
}
Форма проекта
Язык программирования VB.NET.Windows проект.
Условие: построить вложенные геометрические фигуры: окружность зеленного цвета, шестиугольник синего цвета и треугольник красного цвета
Блок – схема алгоритма
Public Class Form4
Dim g As Graphics
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub Form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Button1.Paint
Dim g As Graphics = CreateGraphics()
Dim myBrush As New SolidBrush(Color.DarkBlue)
g.TranslateTransform(50, 50)
g.FillEllipse(Brushes.DarkGreen, 120, -10, 150, 150)
Dim points As Point() = {New Point(195, 0), New Point(235, 23), New Point(245, 70), New Point(200, 110), New Point(143, 77), New Point(145, 25), New Point(195, 0)}
g.FillPolygon(myBrush, points)
Dim triangle As Point() = {New Point(150, 50), New Point(230, 70), New Point(230, 30), New Point(150, 50)}
g.FillPolygon(Brushes.DarkRed, triangle)
End Sub
Private Sub Form4_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Application.Exit()
End Sub
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End SubEnd Class
Форма пректа
Лабораторная работа 10. Построение графика функции.
Вычисление площади фигур методом Монте-Карло.
Программа на языке С#.NET. Windows проект.
Условие: построить график функции y=sin(x) в пределах от а до в с шагом h
Блок – схема алгоритма
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace WindowsFormsApplication7
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
chart1.Series[0].Points.Clear();
double a = Convert.ToDouble(textBox1.Text);
double b = Convert.ToDouble(textBox2.Text);
double h = Convert.ToDouble(textBox3.Text);
double x = a;
do
{
double f = Math.Sin(x);
x = x + h;
double y = f ;
chart1.Series[0].Points.AddXY(x, y);
//chart1.Series[1].Points.AddXY(x, f);
}
while (x <= b);
} }}
Формы пректа
Программа на языке С++.NET. Windows проект.
Условие: построить график функции y=sin(x) в пределах от а до в с шагом h
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
this->Hide();
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
double f1,x, y1;
double h = Convert::ToDouble(textBox1->Text);
double b = Convert::ToDouble(textBox2->Text);
double y = Convert::ToDouble(textBox3->Text);
x = 0; y1 = y;
chart1->Series[0]->Points->Clear();
chart1->Series[1]->Points->Clear();
do
{
f1 = y - 2*sin(x);
x = x+h;
y = y+f1*h;
chart1->Series[0]->Points->AddXY(x, y);
chart1->Series[1]->Points->AddXY(x,f1);
}
while (x<=b);
}};}};}
Формы проекта
Программа на языке VB.NET. Windows проект.
Условие:построить график функции y=sin(x) и таблицу значений Y,X в элементе Listbox
Блок – схема алгоритм
ВыходToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem.Click
End
End Sub
Private Sub НазадToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НазадToolStripMenuItem.Click
Me.Hide()
Form1.Show()
End Sub
Private Sub ПостроитьГрафикToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПостроитьГрафикToolStripMenuItem.Click
Dim g As Graphics = CreateGraphics()
Dim dy, dx, a, b, intx, inty, dpl As Integer
Dim x, y As Double
Dim mashtab As Long
a = InputBox(«Введите левую границу», «Ввод границ»)
b = InputBox(«Введите правую границу», «Ввод границ»)
g.DrawString(a, Font.Clone, Brushes.Black, 22, 145)
g.DrawString(b, Font.Clone, Brushes.Black, 355, 145)
dx = 200
dy = 150
mashtab = 300 / (b - a)
dpl = -(b + a) * Int(mashtab / 2)
g.FillRectangle(Brushes.White, 50, 50, 300, 200)
g.DrawRectangle(Pens.Blue, 50, 50, 300, 200)
“оси координат
g.DrawLine(Pens.Black, dx + dpl, 50, dx + dpl, 250)
g.DrawLine(Pens.Black, 50, 150, 350, 150)
For x = a To b Step 1 / Int(300 / (b - a))
If x <> 0 Then
y = Math.Sin(x)
ListBox1.Items.Add(«x=» + Str(Format(x, «0.##»)) + « « + «y=» + Str(Format(y, «0.##»)))
End If
If (Int(-mashtab * y) + dy >= 50) And (Int(-mashtab * y) + dy <= 250) Then
“ setpixel(Int(mashtab * x) + dx + dpl, Int(-mashtab * y) + dy, clred)
intx = Int(mashtab * x) + dx + dpl
inty = Int(-mashtab * y) + dy
g.FillEllipse(Brushes.Red, intx, inty, 2, 2)
End If
If Int(-mashtab * y) + dy = 50 Then
g.DrawString(Str(Int(y)), Font.Clone, Brushes.Black, 190, 38)
End If
If Int(-mashtab * y) + dy = 250 Then
g.DrawString(Str(Int(y)), Font.Clone, Brushes.Black, 190, 255)
End If
Next
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Формы проекта
Программа на языке C# NET. Windows проект.
Условие: вычислить площадь фигуры методом Монте-Карло.
Блок – схема алгоритма
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Monte_Karlo
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void menuItem4_Click(object sender, EventArgs e)
{
Close();
}
private void menuItem2_Click(object sender, EventArgs e)
{
Refresh();
Graphics g = this.CreateGraphics();
//рисуем ось x
g.DrawLine(new Pen(Color.Black,1),0,Height/2,Width, Height/2);
//рисуем ось у
g.DrawLine(new Pen(Color.Black,1), Width/2,0,Width/2, Height);
//выводим деления по оси х
for (int i = -250; i <= 250; i=i+50)
{
g.DrawLine(new Pen(Color.Black, 1), Width / 2 + i, Height / 2 - 3, Width / 2 + i, Height / 2 + 3);
//выводим значения по оси х
g.DrawString(Convert.ToString(i),new Font("Times New Roman",10), new SolidBrush(Color.Black),Width/2+i-10, Height/2+5);
}
//выводим деления по оси y
for (int i = -250; i <= 250; i = i + 50)
{
g.DrawLine(new Pen(Color.Black,1), Width/2-3, Height/2-i, Width/2+3, Height/2-i);
//выводим значения по оси y
g.DrawString(Convert.ToString(i), new Font("Times New Roman",10), new SolidBrush(Color.Black), Width/2-20, Height/2-i);
}
//рисуем окружности
g.DrawEllipse(new Pen(Color.Black), Width/2-200, Height/2-200,400, 400);
g.DrawEllipse(new Pen(Color.Black), Width/2+20, Height/2-80, 60, 60);
}
private void menuItem3_Click(object sender, EventArgs e)
{
//ввод число точек
int kolic = Convert.ToInt32(textBox1.Text);
int i,i0 = 0,i1 = 0;
int[] x1=new int[1000];
int[] y1 = new int[1000];
int[] x0=new int[1000];
int[] y0=new int[1000];
Random rnd=new Random();
//метод Монте-Карло
for (i = 1; i <= kolic; i++)
{
//выбор координат точек случайным образом
int t1 = rnd.Next(-220, 221);
int t2 = rnd.Next(-220, 221);
{
//условие попадания в фигуру
if ((t1 * t1 + t2 * t2 < 40000) & ((t1 - 50) * (t1 - 50) + (t2 + 50) * (t2 + 50) > 900))
{
//количество попавших точек
i1++;
//запоминаем их координаты
x1[i1] = t1;
y1[i1] = t2;
}
else
{
//количество непопавших точек
i0++;
//запоминаем их координаты
x0[i0] = t1;
y0[i0] = t2;
} } }
Graphics g = this.CreateGraphics();
g.DrawLine(new Pen(Color.Green, 1), Width / 2 - 220, Height / 2 - 220, Width / 2 + 220, Height / 2 - 220);
g.DrawLine(new Pen(Color.Green, 1), Width / 2 + 220, Height / 2 - 220, Width / 2 + 220, Height / 2 + 220);
g.DrawLine(new Pen(Color.Green, 1), Width / 2 + 220, Height / 2 + 220, Width / 2 - 220, Height / 2 + 220);
g.DrawLine(new Pen(Color.Green, 1), Width / 2 - 220, Height / 2 + 220, Width / 2 - 220, Height / 2 - 220);
//рисуем точки, не попавшие в фигуру
for (i = 1; i <= i0; i++)
{
g.DrawEllipse(new Pen(Color.Black), Width / 2 + x0[i] + 1, Height / 2 + y0[i] - 1, 2, 2);
}
//рисуем точки, попавшие в фигуру
for (i = 1; i <= i1; i++)
{
g.DrawEllipse(new Pen(Color.Red), Width / 2 + x1[i] + 1, Height / 2 + y1[i] - 1, 2, 2);
}
//количество попавших точек
int popav = i1;
//вывод количества попавших точек
textBox2.Text = Convert.ToString(popav);
//вычисляем площадь
float s = popav * 440 * 440 / kolic;
////вывод площади
textBox3.Text = Convert.ToString(s);
}
private void Form2_Load(object sender, EventArgs e)
{
} } }
Формы проекта
Лабораторная работа 11. Динамическая графика.
Цель занятия: изучить структуру программ, основные операторы языков С#, С++, VB.NET для построения динамических графических фигур. Получить навыки работ по составлению простейших динамических графических программ
Программа на языке С#.NET. Windows проект.
Условие: реализовать движение цветного шарика методом закрашивания в цвет фона, перемещения шарика и восстановление цвета шарика и т. д.
Блок – схема алгоритма
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace din2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void menuItem2_Click(object sender, EventArgs e)
{
MessageBox.Show("Задать движение шарика по траектории окружности.","Условие");
}
private void menuItem3_Click(object sender, EventArgs e)
{
MessageBox.Show("Профессор Никишев В.К.", "Автор");
}
rivate void menuItem6_Click(object sender, EventArgs e)
{
MessageBox.Show("25 ноября 2007г.", "Дата");
}
public int a;
private void menuItem4_Click(object sender, EventArgs e)
{
//создание объекта Graphics
Graphics g = this.CreateGraphics();
//ввод радиуса окружности
a = Convert.ToInt32(textBox1.Text);
//определение т.(midx,midy)
int midx = Width / 2;
int midy = Height / 2;
//перевод начала координат в т.(midx,midy)
g.TranslateTransform(midx, midy);
//очищение области для построений
Refresh();
//построение осей
g.DrawLine(new Pen(Color.Blue, 2), -midx, 0, midx, 0);
g.DrawLine(new Pen(Color.Blue, 2), 0, midy, 0, -midy);
//построение окружности
g.DrawEllipse(new Pen(Color.Green, 2), -a,-a, 2 * a, 2 * a);
//создание изображения
Bitmap myBitmap1 = new Bitmap(20, 20);
//создание объекта Graphics
Graphics g1 = Graphics.FromImage(myBitmap1);
//1 способ задания шарика красного цвета
//SolidBrush solidBrush_Color1 = new SolidBrush(Color.Red);
//определение структуры для работы с прямоугольной областью
//Rectangle Rect_Move1 = new Rectangle(0, 0, 20, 20);
//рисование шарика
//g1.FillEllipse(solidBrush_Color1, Rect_Move1);
//2 способ задания шарика красного цвета
g1.FillEllipse(new SolidBrush(Color.Red), new Rectangle(0, 0, 20, 20));
//размещение изображения в объекте pictureBox1
pictureBox1.Image = myBitmap1;
//задание движения шарика по окружности
int t = 0;
while (t < 360)
{
pictureBox1.Top = midy-10+ Convert.ToInt16(a * Math.Cos(t * (3.1415 / 180)));
pictureBox1.Left = midx - 10 + Convert.ToInt16(a * Math.Sin(t * (3.1415 / 180.0)));
//текущее значение t
t += 1;
for (int j = 0; j < 360; j++)
for (int k = 0; k < 20; k++) ;
pictureBox1.Refresh();
}
//построение осей
g.DrawLine(new Pen(Color.Blue, 2), -midx, 0, midx, 0);
g.DrawLine(new Pen(Color.Blue, 2), 0, midy, 0, -midy);
//построение окружности
g.DrawEllipse(new Pen(Color.Green, 2), -a, -a, 2 * a, 2 * a);
}
private void menuItem5_Click(object sender, EventArgs e)
{
Close();
}
private void Form1_Load(object sender, EventArgs e)
{ } }}
Форма проекта
Программа на языке С#.NET. Windows проект.
Условие: разработать алгоритм и программу динамики движения шарика по кругу с использованием компонента Timer.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace din2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void menuItem2_Click(object sender, EventArgs e)
{
MessageBox.Show("Задать движение шарика по траектории окружности.","Условие");
}
private void menuItem3_Click(object sender, EventArgs e)
{
MessageBox.Show(" Профессор Никише В. К..", "Автор");
}
private void menuItem6_Click(object sender, EventArgs e)
{
MessageBox.Show("25 октября 2015 г.", "Дата");
}
public int a, t = 0;
public int midx, midy;
private void menuItem4_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
//создание объекта Graphics
Graphics g = this.CreateGraphics();
//ввод радиуса окружности
a = Convert.ToInt32(textBox1.Text);
//определение т.(midx,midy)
midx = Width / 2;
midy = Height / 2;
//перевод начала координат в т.(midx,midy)
g.TranslateTransform(midx, midy);
//очищение области для построений
Refresh();
//построение осей
g.DrawLine(new Pen(Color.Blue, 2), -midx, 0, midx, 0);
g.DrawLine(new Pen(Color.Blue, 2), 0, midy, 0, -midy);
//построение окружности
g.DrawEllipse(new Pen(Color.Green, 2), -a+20,-a+20, 2 * a-40, 2 * a-40); //создание изображения
Bitmap myBitmap1 = new Bitmap(20, 20);
//создание объекта Graphics
Graphics g1 = Graphics.FromImage(myBitmap1);
//1 способ задания шарика красного цвета
//SolidBrush solidBrush_Color1 = new SolidBrush(Color.Red);
//определение структуры для работы с прямоугольной областью
//Rectangle Rect_Move1 = new Rectangle(0, 0, 20, 20);
//рисование шарика
//g1.FillEllipse(solidBrush_Color1, Rect_Move1);
//2 способ задания шарика красного цвета
g1.FillEllipse(new SolidBrush(Color.Red), new Rectangle(0, 0, 20, 20));
//размещение изображения в объекте pictureBox1
pictureBox1.Image = myBitmap1;
}
private void menuItem5_Click(object sender, EventArgs e)
{
Close();
}
private void timer1_Tick(object sender, EventArgs e)
{
t += 10;
if (t > 360) timer1.Enabled=false;
pictureBox1.Top = midy - 10 + Convert.ToInt16(a * Math.Cos(t * (3.1415 / 180)));
pictureBox1.Left = midx - 10 + Convert.ToInt16(a * Math.Sin(t * (3.1415 / 180.0)));
for (int j = 0; j < 360; j++)
for (int k = 0; k < 200; k++) ;
pictureBox1.Refresh(); } }}
Форма проекта
Программа на языке С#.NET. Windows проект.
Условие:разработать алгоритм и программу анимационного рисунка « Солнышко улыбается» с использованием компонента Timer.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Colnce
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int bl;
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
// Bitmap myBitmap1 = new Bitmap(630, 510);
// Graphics g1 = Graphics.FromImage(myBitmap1);
// pictureBox1.Image = myBitmap1;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (bl== 1)
{ pictureBox1.Load("m:\\sun1.bmp");
bl=2;
}
else
if (bl== 2)
{ pictureBox1.Load("m:\\sun2.bmp");
bl=3;
}else
if (bl == 3)
{ pictureBox1.Load("m:\\sun3.bmp");
bl = 1;
}
bl++;
if (bl == 4) bl = 1;
}
private void Form1_Load(object sender, EventArgs e)
{
bl=1;
}
private void pictureBox1_Click(object sender, EventArgs e)
{ }
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
}
private void button3_Click(object sender, EventArgs e)
{
Close(); } }}
Формы проекта
Лабораторная работа 12. Базы данных. Файлы.
Цель занятия: изучить структуру программ для составления баз данных, ип данных файлы и их использования для сохранения баз данных, а также работу с базой данных ( добавление, поиск, удаление и очистка ).
Программа на языке С#.NET. Windows проект.
Условие: разработать базу данных « компьютерный магазин» для обслуживания клиентов по покупке и ремонту компьютеров и различных элементов оборудования.
Блок – схема алгоритма
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 Компьютерный_магазин
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)//Кнопка добавить
{
string name = textBox1.Text;
string moda = textBox2.Text;
string gopnik = textBox3.Text;
string kids = textBox4.Text;
string women = textBox5.Text;
dataGridView1.Rows.Add(name,moda,gopnik,kids,women);
}
private void button2_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();//Кнопка Удалить все
}
private void button3_Click(object sender, EventArgs e)//Кнопка удалить выделенное
{
int ind = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(ind);
}
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)//Файл>>Открыть
{
Stream mystr = null;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((mystr = openFileDialog1.OpenFile()) != null)
{
StreamReader myread = new StreamReader(mystr);
string[] str;
int num = 0;
try
{
string[] str1 = myread.ReadToEnd().Split('\n');
num = str1.Count();
dataGridView1.RowCount = num;
for (int i = 0; i < num; i++)
{
str = str1[i].Split('^');
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
try
{
dataGridView1.Rows[i].Cells[j].Value = str[j];
}
catch { }
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
myread.Close();
}
} } }
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)//Файл>>Cохранить
{
Stream mystream;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((mystream = saveFileDialog1.OpenFile()) != null)
{
StreamWriter mywrite = new StreamWriter(mystream);
try
{
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
mywrite.Write(dataGridView1.Rows[i].Cells[j].Value.ToString() + "^");
}
mywrite.WriteLine();
} }
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
mywrite.Close();
}
mystream.Close();
} } }
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void авторToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Работу выполнил студент группы ДиКТ-31-12 Данилов Сергей");
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void алгоритм ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
Form f2 = new Form2();
f2.Show();
}
private void условиеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Добавить записи.Сделать открытие и сохранение файла");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
} } }
Формы проекта
Лабораторная работа 13. Система управления базами
данных.
Цель занятия: изучить структуру программ, основные операторы языков С#, С++, VB.NET для построения баз данных и систем управления базами данных. Получить навыки работ по составлению простейших графических программ
Программа на языке С#.NET. Windows проект.
Условие: разработать систему управления базой данных
« ремонт компьютеров и ноутбоков» с режимами работ: ввод данных, удаление данных, поиск и сохранение днных».
Блок схема алгоритма
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;
namespace salon
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "salonDataSet.Услуги". При необходимости она может быть перемещена или удалена.
this.услугиTableAdapter.Fill(this.salonDataSet.Услуги);
// TODO: данная строка кода позволяет загрузить данные в таблицу "salonDataSet.Клиенты". При необходимости она может быть перемещена или удалена.
this.клиентыTableAdapter.Fill(this.salonDataSet.Клиенты);
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
break;
}
if (textBox8.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
{
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
dataGridView1.FirstDisplayedScrollingRowIndex = i;
break;
} } } }
private void button2_Click(object sender, EventArgs e)
{
клиентыTableAdapter.Insert(textBox1.Text, textBox2.Text, textBox4.Text);
услугиTableAdapter.Insert(textBox5.Text, textBox6.Text, textBox7.Text);
salonDataSet.AcceptChanges();
клиентыTableAdapter.Update(salonDataSet.Клиенты);
услугиTableAdapter.Update(salonDataSet.Услуги);
this.клиентыTableAdapter.Fill(this.salonDataSet.Клиенты);
this.услугиTableAdapter.Fill(this.salonDataSet.Услуги);
}
private void сохранитьToolStripButton_Click(object sender, EventArgs e)
{
Validate();
клиентыУслугиBindingSource.EndEdit();
клиентыTableAdapter.Update(salonDataSet);
услугиTableAdapter.Update(salonDataSet);
salonDataSet.AcceptChanges();
} }}
Формы проекта
Таблицы базы данных
Программа на языке C#.NET. Windows проект.
Условие: создать систему управления базой данных « телефон»
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace База_данных_АБОНЕНТЫ1
{
public partial class Form1 : Form
{
public Form1()
{using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
InitializeComponent();
Form3 auth = new Form3();
this.Show();
auth.ShowDialog();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "телефонDataSet.TELEFON". При необходимости она может быть перемещена или удалена.
// this.tELEFONTableAdapter.Fill(this.телефонDataSet.TELEFON);
// TODO: данная строка кода позволяет загрузить данные в таблицу "телефонDataSet.TELEFON". При необходимости она может быть перемещена или удалена.
this.tELEFONTableAdapter.Fill(this.телефонDataSet.TELEFON);
}
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
{
tELEFONTableAdapter.Update(телефонDataSet);
телефонDataSet.AcceptChanges();
}
//Кнопка поиск
private void button1_Click(object sender, EventArgs e) //организация поиска
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
break;
}
if (textBox1.Text == dataGridView1.Rows[i].Cells[j].Value.ToString())
{
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[j];
dataGridView1.FirstDisplayedScrollingRowIndex = i;
break;
} } } }
private void авторToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f1 = new Form2();
f1.Show();
}
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 f1 = new Form3();
f1.Show();
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void button2_Click(object sender, EventArgs e) //добавление записи при помощи компонента button
{
tELEFONTableAdapter.Insert(textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text);
телефонDataSet.AcceptChanges();
ELEFONTableAdapter.Update(телефонDataSet.TELEFON);
this.tELEFONTableAdapter.Fill(this.телефонDataSet.TELEFON);
} }}
Формы проекта
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Linq;
using System.Xml.Linq;
namespace лаба_3_и_2
{
public partial class Form2
{
internal Form2()
{
InitializeComponent();
}
private void Таблица1BindingNavigatorSaveItem_Click(object sender, System.EventArgs e)
{
this.Validate();
this.Таблица1BindingSource.EndEdit();
this.TableAdapterManager.UpdateAll(this.Database1DataSet);
this.Database1DataSet.AcceptChanges();
}
private void Form2_Load(object sender, System.EventArgs e)
{
//TODO: данная строка кода позволяет загрузить данные в таблицу "Database1DataSet.Таблица1". При необходимости она может быть перемещена или удалена.
this.Таблица1TableAdapter.Fill(this.Database1DataSet.Таблица1);
}
private void Button1_Click(object sender, System.EventArgs e)
{
DataGridView1.Rows.Clear();
DataGridViewRow tmp = null;
for (var i = 0; i <= Таблица1DataGridView.RowCount - 2; i++)
{
if (Convert.ToDouble(Таблица1DataGridView.Rows[i].Cells[4].Value.ToString()) <= Convert.ToDouble(TextBox1.Text))
{
tmp = Таблица1DataGridView.Rows[i];
DataGridView1.Rows.Add(tmp.Cells[0].Value.ToString(), tmp.Cells[1].Value.ToString(), tmp.Cells[2].Value.ToString(), tmp.Cells[3].Value.ToString(), tmp.Cells[4].Value.ToString());
}}}
private void Button2_Click(object sender, System.EventArgs e)
{
Form1.DefaultInstance.Show();
this.Hide();
} } }
Программа на языке C#.NET. Windows проект.
Условие: создать систему управления базой данных
«туристические туры»
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Linq;
using System.Xml.Linq;
namespace лаба_3_и_2
{
public partial class Form2
{
internal Form2()
{
InitializeComponent();
}
private void Таблица1BindingNavigatorSaveItem_Click(object sender, System.EventArgs e)
{
this.Validate();
this.Таблица1BindingSource.EndEdit();
this.TableAdapterManager.UpdateAll(this.Database1DataSet);
this.Database1DataSet.AcceptChanges();
}
private void Form2_Load(object sender, System.EventArgs e)
{
//TODO: данная строка кода позволяет загрузить данные в таблицу "Database1DataSet.Таблица1". При необходимости она может быть перемещена или удалена.
this.Таблица1TableAdapter.Fill(this.Database1DataSet.Таблица1);
}
private void Button1_Click(object sender, System.EventArgs e)
{
DataGridView1.Rows.Clear();
DataGridViewRow tmp = null;
for (var i = 0; i <= Таблица1DataGridView.RowCount - 2; i++)
{
if (Convert.ToDouble(Таблица1DataGridView.Rows[i].Cells[4].Value.ToString()) <= Convert.ToDouble(TextBox1.Text))
{
tmp = Таблица1DataGridView.Rows[i];
DataGridView1.Rows.Add(tmp.Cells[0].Value.ToString(), tmp.Cells[1].Value.ToString(), tmp.Cells[2].Value.ToString(), tmp.Cells[3].Value.ToString(), tmp.Cells[4].Value.ToString());
} } }
private void Button2_Click(object sender, System.EventArgs e)
{
Form1.DefaultInstance.Show();
this.Hide();
} }}
Формы проекта
Программа на языке C++#.NET. Windows проект.
Условие: создать систему управления базой данных
« автомагазин» с возможностью записи информации в файл и в базу данных «аccess»
#pragma once
#include <list>
#include <string>
#include <fstream>
namespace СУБД {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Data::OleDb;
using namespace System::Drawing;
using namespace System::IO;
using namespace System::Text;
using namespace System::Collections::Generic;
public ref class Form2 : public System::Windows::Forms::Form
{
public:
Form^ f;
bool flag;
private:
DataSet^ dataSet = gcnew DataSet();
OleDbDataAdapter^ adap;
this->Text = L"Работа с текстовым файлом";
this->FormClosed += gcnew System::Windows::Forms::FormClosedEventHandler(this, &Form2::Form2_FormClosed);
this->Load += gcnew System::EventHandler(this, &Form2::Form2_Load);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->dataGridView1))->EndInit();
this->menuStrip1->ResumeLayout(false);
this->menuStrip1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void Form2_Load(System::Object^ sender, System::EventArgs^ e) {
button1->Enabled = false;
button2->Enabled = false;
button3->Enabled = false;
button4->Enabled = false;
}
private: System::Void Form2_FormClosed(System::Object^ sender, System::Windows::Forms::FormClosedEventArgs^ e) {
this->Hide();
f->Show();
}
//открыть файл
private: System::Void открытьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
button1->Enabled = true;
button2->Enabled = true;
button3->Enabled = true;
button4->Enabled = true;
dataSet->Clear();
try
{//чтение базы данных
if (flag == false)
{
//"select Номер,Название,Цена,Масса,Цвет,Страна from LIST"
adap = gcnew OleDbDataAdapter("select * from LIST", gcnew OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=11.mdb"));
OleDbCommandBuilder^ bulder = gcnew OleDbCommandBuilder(adap);
adap->UpdateCommand = bulder->GetUpdateCommand();
adap->InsertCommand = bulder->GetInsertCommand();
adap->DeleteCommand = bulder->GetDeleteCommand();
adap->Fill(dataSet);
dataGridView1->DataSource = dataSet->Tables[0];
dataGridView1->Columns->Clear();
dataGridView1->DataSource = dataSet;
dataGridView1->DataMember = dataSet->Tables[0]->TableName;
dataSet->AcceptChanges();
dataGridView1->Columns[0]->Visible = false;
}
else
//чтение текстого файла
{
//openFileDialog1->ShowDialog();
array<String^>^ F = File::ReadAllLines("1.txt");
dataGridView1->RowCount = F->Length;
for (int i = 0; i < F->Length; i++)
{
array<String^>^ s = F[i]->Split('|');
dataGridView1->Rows[i]->Cells[0]->Value = s[0];
dataGridView1->Rows[i]->Cells[1]->Value = s[1];
dataGridView1->Rows[i]->Cells[2]->Value = s[2];
dataGridView1->Rows[i]->Cells[3]->Value = s[3];
dataGridView1->Rows[i]->Cells[4]->Value = s[4];
dataGridView1->Rows[i]->Cells[5]->Value = s[5];
}}}
catch (Exception^ e)
{}}
//сохранить файл
private: System::Void сохранитьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
try
{
if (flag == false)
//сохранить в базу данных
adap->Update(dataSet->Tables[0]);
//сохранить в текстовый файл
else
{
List<String^>^ S = gcnew List<String^>();
for (int i = 0; i < dataGridView1->RowCount; i++)
{
String^ w =
Convert::ToString(dataGridView1->Rows[i]->Cells[0]->Value) + "|" +Convert::ToString(dataGridView1->Rows[i]->Cells[1]->Value) + "|" +Convert::ToString(dataGridView1->Rows[i]->Cells[2]->Value) + "|" +Convert::ToString(dataGridView1->Rows[i]->Cells[3]->Value) + "|" +
Convert::ToString(dataGridView1->Rows[i]->Cells[4]->Value) + "|" +Convert::ToString(dataGridView1->Rows[i]->Cells[5]->Value);
S->Add(w); }
saveFileDialog1->ShowDialog();
File::WriteAllLines(saveFileDialog1->FileName, S);
}}
catch (Exception^ e)
{ } }
private: System::Void dataGridView1_Click(System::Object^ sender, System::EventArgs^ e) {
try
{
int i = dataGridView1->SelectedCells[0]->RowIndex;
if (flag == true)//текст
{
textBox1->Text = dataGridView1->Rows[i]->Cells[0]->Value->ToString();
textBox2->Text = dataGridView1->Rows[i]->Cells[1]->Value->ToString();
textBox3->Text = dataGridView1->Rows[i]->Cells[2]->Value->ToString();
textBox4->Text = dataGridView1->Rows[i]->Cells[3]->Value->ToString();
textBox5->Text = dataGridView1->Rows[i]->Cells[4]->Value->ToString();
textBox6->Text = dataGridView1->Rows[i]->Cells[5]->Value->ToString(); }
else//база
{
textBox1->Text = dataGridView1->Rows[i]->Cells[1]->Value->ToString();
textBox2->Text = dataGridView1->Rows[i]->Cells[2]->Value->ToString();
textBox3->Text = dataGridView1->Rows[i]->Cells[3]->Value->ToString();
textBox4->Text = dataGridView1->Rows[i]->Cells[4]->Value->ToString();
textBox5->Text = dataGridView1->Rows[i]->Cells[5]->Value->ToString();
textBox6->Text = dataGridView1->Rows[i]->Cells[6]->Value->ToString();
}}
catch (Exception^e) {}
}
//добавить строку
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
if (flag == true)//текст
{
dataGridView1->Rows->Add(textBox1->Text, textBox2->Text, textBox3->Text, textBox4->Text, textBox5->Text, textBox6->Text);
}
else//база
{
dataSet->Tables[0]->Rows->Add(dataSet->Tables[0]->Rows->Count, textBox1->Text, textBox2->Text, textBox3->Text, textBox4->Text, textBox5->Text, textBox6->Text);
}}
//редактировать строку
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
//try
{
int i = dataGridView1->SelectedCells[0]->RowIndex;
if (flag == true)//текст
{
dataGridView1->Rows[i]->Cells[0]->Value = textBox1->Text;
dataGridView1->Rows[i]->Cells[1]->Value = textBox2->Text;
dataGridView1->Rows[i]->Cells[2]->Value = textBox3->Text;
dataGridView1->Rows[i]->Cells[3]->Value = textBox4->Text;
dataGridView1->Rows[i]->Cells[4]->Value = textBox5->Text;
dataGridView1->Rows[i]->Cells[5]->Value = textBox6->Text;
}
else//база
{dataGridView1->Rows[i]->Cells[1]->Value = textBox1->Text;
dataGridView1->Rows[i]->Cells[2]->Value = textBox2->Text;
dataGridView1->Rows[i]->Cells[3]->Value = textBox3->Text;
dataGridView1->Rows[i]->Cells[4]->Value = textBox4->Text;
dataGridView1->Rows[i]->Cells[5]->Value = textBox5->Text;
dataGridView1->Rows[i]->Cells[6]->Value = textBox6->Text;
}}
//catch (Exception^e) {}
}
//очистить таблицу
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
if (flag == true)//текст
{
dataGridView1->Rows->Clear();
}
else//база
{
dataSet->Clear();
}}
//удалить строку
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
try
{
if (flag == true)//текст
{
int ind = dataGridView1->SelectedCells[0]->RowIndex;
dataGridView1->Rows->RemoveAt(ind);
}
else//база
{
int ind = dataGridView1->SelectedCells[0]->RowIndex;
//dataSet->Tables[0]->Rows->RemoveAt(ind);
dataGridView1->Rows->RemoveAt(ind);
} }
catch (Exception^ e) {}
}
//поиск
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e)
{
String^ s = textBox7->Text;
if (flag == true)//текст
{
int k = 0;
while (k < dataGridView1->RowCount)
{
String^ x = dataGridView1->Rows[k]->Cells[0]->Value->ToString();
if (x != s)
dataGridView1->Rows->RemoveAt(k);
else
k++;
}}
else//база
{
int k = 0;
while (k < dataGridView1->RowCount)
{
String^ x = dataGridView1->Rows[k]->Cells[1]->Value->ToString();
if (x != s)
dataGridView1->Rows->RemoveAt(k);
else
k++;
}}}
private: System::Void dataGridView1_CellContentClick(System::Object^ sender, System::Windows::Forms::DataGridViewCellEventArgs^ e) {
}};}
#pragma once
#include "Form2.h"
#include "Form3.h"
#include "Form4.h"
namespace СУБД {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
// <summary>
// Сводка для MyForm
// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~MyForm()
{
if (components)
{
delete components;
} }
private: System::Windows::Forms::Button^ button3;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button4;
private: System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте содержимое данного метода при помощи редактора кода.
/// </summary>
void InitializeComponent(void)
{
this->button3 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button4 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
// button3
this->button3->BackColor = System::Drawing::Color::Ivory;
this->button3->Font = (gcnew System::Drawing::Font(L"Andy", 24, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button3->ForeColor = System::Drawing::Color::Orange;
this->button3->Location = System::Drawing::Point(0, 240);
this->button3->Name = L"button3";
this->button3->Size = System::Drawing::Size(500, 70);
this->button3->TabIndex = 8;
this->button3->Text = L"Автор";
this->button3->UseVisualStyleBackColor = false;
this->button3->Click += gcnew System::EventHandler(this, &MyForm::button3_Click);
//
// button2
//
this->button2->BackColor = System::Drawing::Color::Ivory;
this->button2->Font = (gcnew System::Drawing::Font(L"Andy", 24, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button2->ForeColor = System::Drawing::Color::Orange;
this->button2->Location = System::Drawing::Point(0, 88);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(500, 70);
this->button2->TabIndex = 7;
this->button2->Text = L"Работа с базой данных";
this->button2->UseVisualStyleBackColor = false;
this->button2->Click += gcnew System::EventHandler(this, &MyForm::button2_Click);
// button1
this->button1->BackColor = System::Drawing::Color::Ivory;
this->button1->Font = (gcnew System::Drawing::Font(L"Andy", 24, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button1->ForeColor = System::Drawing::Color::Orange;
this->button1->Location = System::Drawing::Point(0, 12);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(500, 70);
this->button1->TabIndex = 6;
this->button1->Text = L"Работа с текстовым файлом";
this->button1->UseVisualStyleBackColor = false;
this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
// button4
this->button4->BackColor = System::Drawing::Color::Ivory;
this->button4->Font = (gcnew System::Drawing::Font(L"Andy", 24, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button4->ForeColor = System::Drawing::Color::Orange;
this->button4->Location = System::Drawing::Point(0, 164);
this->button4->Name = L"button4";
this->button4->Size = System::Drawing::Size(500, 70);
this->button4->TabIndex = 9;
this->button4->Text = L"Задание";
this->button4->UseVisualStyleBackColor = false;
this->button4->Click += gcnew System::EventHandler(this, &MyForm::button4_Click);
// MyForm
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(499, 318);
this->Controls->Add(this->button4);
this->Controls->Add(this->button3);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->Name = L"MyForm";
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
this->Text = L"СУБД";
this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {
//this->ClientSize = System::Drawing::Size(518, 357);
//this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
Form4^ f = gcnew Form4();
f->f = this;
this->Hide();
f->Show();
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Form2^ f = gcnew Form2();
f->f = this;
f->flag = true;
f->Text = "Работа с текстовым Файлом";
this->Hide();
f->Show();
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
Form2^ f = gcnew Form2();
f->flag = false;
f->Text = "Работа с базой данных";
f->f = this;
this->Hide();
f->Show();
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
Form3^ f = gcnew Form3();
f->f = this;
this->Hide();
f->Show(); }};}
Формы проекта
Программа на языке C++.NET. Windows проект.
Условие: создать систему управления базой данных
« магазин по продаже компьютеров»
#pragma once
#include"DataBase.h"
namespace СУБД {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Сводка для AddMagaz
/// </summary>
public ref class AddMagaz : public System::Windows::Forms::Form
{
public:
AddMagaz()
{
InitializeComponent();
//TODO: добавьте код конструктора
}
String^ command;
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~AddMagaz()
{
if (components)
{
delete components;
} }
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button2;
protected:
private:
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте содержимое данного метода при помощи редактора кода.
/// </summary>
void InitializeComponent(void)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
// textBox1
this->textBox1->Location = System::Drawing::Point(101, 21);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(129, 20);
this->textBox1->TabIndex = 0;
// label1
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(12, 24);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(83, 13);
this->label1->TabIndex = 1;
this->label1->Text = L"Наименование";
// label2
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(12, 71);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(33, 13);
this->label2->TabIndex = 2;
this->label2->Text = L"Цена";
// textBox2
this->textBox2->Location = System::Drawing::Point(101, 68);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(129, 20);
this->textBox2->TabIndex = 3;
// button1
this->button1->DialogResult = System::Windows::Forms::DialogResult::OK;
this->button1->Location = System::Drawing::Point(29, 143);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(92, 30);
this->button1->TabIndex = 4;
this->button1->Text = L"ОК";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &AddMagaz::button1_Click);
// button2
this->button2->DialogResult = System::Windows::Forms::DialogResult::Cancel;
this->button2->Location = System::Drawing::Point(138, 143);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(92, 30);
this->button2->TabIndex = 5;
this->button2->Text = L"Cancel";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &AddMagaz::button2_Click);
// AddMagaz
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(271, 209);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->textBox1);
this->Name = L"AddMagaz";
this->Text = L"AddMagaz";
this->Load += gcnew System::EventHandler(this, &AddMagaz::AddMagaz_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void AddMagaz_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
command = "insert into Магазин (Наименование,Цена) values ('" + textBox1->Text + "','" + textBox2->Text + "')";
//d->Add(command);
this->Close();
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
this->Close();
}
};}
#pragma once
namespace СУБД {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Сводка для AddHarak
/// </summary>
public ref class AddHarak : public System::Windows::Forms::Form
{
public:
AddHarak(String^ s)
{
InitializeComponent();
//TODO: добавьте код конструктора
command = s;
}
String^ command;
protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~AddHarak()
{
if (components)
{
delete components;
}}
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox4;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::Button^ button2;
protected:
private:
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте/// содержимое данного метода при помощи редактора кода. /// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->label1 = (gcnew System::Windows::Forms::Label());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->button2 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
// button1
this->button1->DialogResult = System::Windows::Forms::DialogResult::OK;
this->button1->Location = System::Drawing::Point(32, 164);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(100, 38);
this->button1->TabIndex = 9;
this->button1->Text = L"ОК";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &AddHarak::button1_Click);
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(12, 20);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(46, 13);
this->label1->TabIndex = 1;
this->label1->Text = L"Память";
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(120, 17);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(166, 20);
this->textBox1->TabIndex = 2;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(120, 43);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(166, 20);
this->textBox2->TabIndex = 3;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(120, 69);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(166, 20);
this->textBox3->TabIndex = 4;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(120, 95);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(166, 20);
this->textBox4->TabIndex = 5;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(12, 98);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(73, 13);
this->label2->TabIndex = 6;
this->label2->Text = L"Аккумулятор";
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(12, 72);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(109, 13);
this->label3->TabIndex = 7;
this->label3->Text = L"Разрешение экрана";
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(12, 46);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(46, 13);
this->label4->TabIndex = 8;
this->label4->Text = L"Камера";
//
// button2
//
this->button2->Location = System::Drawing::Point(160, 164);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(100, 38);
this->button2->TabIndex = 10;
this->button2->Text = L"Cancel";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &AddHarak::button2_Click);
//
// AddHarak
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(295, 261);
this->Controls->Add(this->button2);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
this->Controls->Add(this->label2);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->label1);
this->Controls->Add(this->button1);
this->Name = L"AddHarak";
this->Text = L"AddHarak";
this->Load += gcnew System::EventHandler(this, &AddHarak::AddHarak_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void AddHarak_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
command = "insert into Характеристики (Номер_товара,Память,Камера_МП,Разрешение_экрана,Аккумулятор) values ('" + command+"','"+textBox1->Text + "','" + textBox2->Text + "','" + textBox3->Text + "','" + textBox4->Text + "')";
this->Close();
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
this->Close();
}};}
Формы проекта
Программа на языке VB.NET. Windows проект.
Условие:
Public Class Form2
Private Sub Таблица1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Таблица1BindingNavigatorSaveItem.Click
Me.Validate()
Me.Таблица1BindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.Database1DataSet)
Me.Database1DataSet.AcceptChanges()
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "Database1DataSet.Таблица1". При необходимости она может быть перемещена или удалена.
Me.Таблица1TableAdapter.Fill(Me.Database1DataSet.Таблица1)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataGridView1.Rows.Clear()
Dim tmp As DataGridViewRow
For i = 0 To Таблица1DataGridView.RowCount - 2
If Таблица1DataGridView.Rows(i).Cells(4).Value.ToString() <= TextBox1.Text Then
tmp = Таблица1DataGridView.Rows(i)
DataGridView1.Rows.Add(tmp.Cells(0).Value.ToString(), tmp.Cells(1).Value.ToString(), tmp.Cells(2).Value.ToString(), tmp.Cells(3).Value.ToString(), tmp.Cells(4).Value.ToString())
End If
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form1.Show()
Me.Hide()
End Sub
End Class
Validate();
клиентыУслугиBindingSource.EndEdit();
клиентыTableAdapter.Update(salonDataSet);
услугиTableAdapter.Update(salonDataSet);
salonDataSet.AcceptChanges();
Задания для лаборторных работ
Задания для контрольных работ
Задача 1.
Написать программу определения количества шестизначных “счастливых” билетов, у которых сумма первых 3 десятичных цифр равна сумме 3 последних десятичных цифр.
Задача 2.
Написать программу определения количества 2*N -значных билетов, у которых сумма первых N десятичных цифр равна сумме N последних десятичных цифр; при этом N -произвольное натуральное число.
Задача 3.
Фишка может двигаться по полю длины N только вперед. Длина хода фишки не более K. Найти число различных путей, по которым фишка может пройти поле от начала до конца.
Задача 4.
Покупатель имеет купюры достоинством A(1), ...,A(n), а продавец - B(1), .. ,B(m). Необходимо найти максимальную стоимость товара Р, которую покупатель не может купить, потому что нет возможности точно рассчитаться за этот товар с продавцом, хотя денег на покупку этого товара достаточно.
Задача 5.
Задан массив М [1:N] натуральных чисел, упорядоченный по неубыванию, т.е.: M[1]<=M[2]<=...<=M[N]. Найти первое натуральное число, не представимое суммой никаких элементов этого массива, при этом сумма может состоять и из одного слагаемого, но каждый элемент массива может входить в нее только один раз.
Задача 6.
У покупателя есть n монет достоинством H(1),..., H(n). У продавца есть m монет достоинством B(1),...,B(l). Может ли купить покупатель вещь стоимости S так, чтобы у продавца нашлась точная сдача (если она необходима).
Задача 8.
Задан массив М [1:N] натуральных чисел, упорядоченный по неубыванию, т.е.: M[1]<=M[2]<=...<=M[N]. Написать алгоритм выплаты заданной суммы S минимальным количеством купюp достоинством M(1), ..., M(N).
Задача 9.
По матрице A(N,N) построить матрицу B(N,N). Элемент B(I,J) равен максимальному из элементов матрицы А принадлежащем части, ограниченной справа диагоналями, проходящими через A(I,J).
Задача 10.
Вводится матрица a(m,n) из 0 и 1. Найти в ней квадратную подматрицу из одних единиц максимального размера.
Задача 11.
Вводится матрица a(m,n) из 0 и 1. Найти в ней прямоугольную подматрицу из одних единиц максимального размера (т.е. с максимальным произведением высоты на длину).
Переформулировка задачи 11.
Фермер хочет построить на своей земле как можно больший по площади сарай. Но на его участке есть деревья и хозяйственные постройки, которые он не хочет никуда переносить. Для простоты представим ферму сеткой размера MxN. Каждое из деревьев и построек размещается в одном или нескольких узлах сетки. Прямоугольный сарай не должен ни с чем соприкасаться (т.е. в соседних с ним узлах сетки не может ничего быть).
Найти максимально возможную площадь сарая и где он может размещаться.
Задача 12.
Дан массив A[N,M]. Необходимо найти максимальную сумму элементов прямоугольного подмассива по всем возможным прямоугольным подмассивам.
Задача 13.
Задана матрица натуральных чисел A(n,m). За каждый проход через клетку (i,j) взымается штраф A(i,j). Необходимо минимизировать штраф и
а) Пройти из какой-либо клетки 1-ой строки в n-ую строчку, при этом из текущей клетки можно перейти
1) в любую из 3-х соседних, стоящих в стpоке с номеpом на 1-цу большем;
2) в любую из 8 соседних клеток;
б) Реализовать пункт a) для перехода из клетки (1,1) в (n,m).
Задача 14.
Дан выпуклый n-угольник, n=>3, своим обходом по контуру. Разбить его на треугольники (n-3)-мя диагоналями, непересекающимися кроме как по концам, таким образом чтобы
а) Cумма их длин была минимальной;
б) Максимальная из диагоналей имела наименьшую длину.
Задача 15.
Задано число А и два вектора b[1..n] и c[1..n].Найти Найти множество I, являющееся подмножеством множества {1,...,n}, такое, что чтобы
а) Cумма их длин была минимальной;
б) Максимальная из диагоналей имела наименьшую длину.
максимальной из всех возможных
Задача 16.
Пусть x=(a1,a2,...,am) и y=(b1,b2,...,bn) - две заданных строки символов.
Определим d(x,y) как минимальное число вставок, удалений и замен символа, которое необходимо для преобразования x в y.
Например: d(ptslddf,tsgldds)=3
Для заданных x и y найти d(x,y).
Задача 17.
Вводится три неотрицательных числа d, i, c и две строки X и Y. Найти преобразование строки X в Y минимальной стоимости. Допустимы следующие три операции:
удалить любой символ из X (стоимость операции d);
вставить любой символ в X (стоимость операции i);
заменить символ в X на произвольный (стоимость операции e).
Задача 18.
Даны две строки x и y. Строка x состоит из нулей и единиц, строка y из символов A и B. Можно ли строку x преобразовать в строку y по следующему правилу: цифра 0 преобразуется в непустую последовательность букв A, а цифра 1 - либо в непустую последовательность букв A, либо в непустую последовательность букв B?
Задача 19.
Пусть известно, что для перемножения матрицы размера n*m на матрицу размера m*k требуется n*m*k операций. Необходимо определить, какое минимальное число операций потребуется для перемножения n матриц А1,...Аn, заданных своими размерами n(i)*m(i). При этом можно перемножать любые две рядом стоящие матрицы, в результате чего получается матрица нужного размера.
Замечание:
n(i) - число строк в матрице Ai;
m(i) - число столбцов в матрице Ai;n(i)=m(i)+1.
Задача 20.
а) Из последовательности, состоящей из N чисел, вычеркнуть минимальное количество элементов так, чтобы оставшиеся образовали строго возрастающую последовательность.
б) Из заданной числовой последовательности A[1..N] вычеркнуть минимальное число элементов так, чтобы в оставшейся подпоследовательности каждый последующий лемент был больше предыдущего кроме, быть может, одной пары соседних элементов ( одного «разрыва» возрастающей подпоследовательности).
Например: A=(1,2,3,2,4,3,4,6);Искомая подпоследовательность (1,2,3,2,3,4,6) Разрыв подчеркнут.
б) Из заданной числовой последовательности A[1..N] вычеркнуть минимальное число элементов так, чтобы в оставшейся подпоследовательности каждый последующий элемент был больше предыдущего кроме, быть может, m пар соседних элементов ( возрастающая подпоследовательность с m «разрывами»).
Задача 21.
В заданной последовательности целых чисел найти максимально длинную подпоследовательность чисел такую, что каждый последующий элемент подпоследовательности делился нацело на предыдущий.
Задача 22.
Возвести число А в натуральную степень n за как можно меньшее количество умножений.
Задача 23.
Заданы z и y - две последовательности. Можно ли получить
последовательность z вычеркиванием элементов из y.
Задача 24.
Найти максимальную по длине последовательность z, полученную
вычеркиванием элементов как из x, так и из y.
Задача 25.
Пусть x и y - две бинарных последовательности (т.е. элементы последовательностей - нули и единицы); x и y можно рассматривать как запись в двоичной форме некоторых двух натуральных чисел. Найти максимальное число z, двоичную запись которого можно получить вычеркиванием цифр как из x, так и из y. Ответ выдать в виде бинарной последовательности.
Справка по основным конструкциям языка С#.
1. Типы данных:
- в b o o l логический
- b y t e 8-разрядный целочисленный без знака
- char символьный
- d e c i m a l числовой тип для финансовых вычислений
- d o u b l e с плавающей точкой двойной точности
- f l o a t с плавающей точкой
- i n t целочисленный
- l o n g длинное целое число
- s b y t e 8-разрядный целочисленный со знаком
- s h o r t тип для представления короткого целого числа
- u i n t целочисленный без знака
- u l o n g длинное целое число без знака
- u s h o r t короткоео целое число без знака
2. Основные операции
Операция |
Описание |
. |
Доступ к элементу |
x() |
Вызов метода или делегата |
x[] |
Доступ к элементу |
x++ |
Постфиксный инкремент |
x-- |
Постфиксный декремент |
new |
Выделение памяти |
typeof |
Получение типа |
checked |
Проверяемый код |
unchecked |
Непроверяемый код |
+ |
Унарный плюс |
- |
Арифметическое отрицание |
! |
Логическое отрицание |
~ |
Поразрядное отрицание |
++x |
Префиксный инкремент |
--x |
Префиксный декремент |
(тип) x |
Преобразование типа |
* |
Умножение |
/ |
Деление |
% |
Остаток от деления |
<< |
Сдвиг влево |
>> |
Сдвиг вправо |
< |
Меньше |
> |
Больше |
<= |
Меньше или равно |
>= |
Больше или равно |
is |
Проверка принадлежности типу |
as |
Приведение типа |
== |
Равно |
!= |
Не равно |
& |
Поразрядное И |
^ |
Поразрядное исключающее ИЛИ |
| |
Поразрядное ИЛИ |
&& |
Логическое И |
|| |
Логическое ИЛИ |
?: |
Условная операция |
= |
Простое присваивание |
*= |
Умножение с присваиванием |
/= |
Деление с присваиванием |
%= |
Остаток от деления с присваиванием |
+= |
Сложение с присваиванием |
-= |
Вычитание с присваиванием |
<<= |
Сдвиг влево с присваиванием |
>>= |
Сдвиг вправо с присваиванием |
&= |
Поразрядное И с присваиванием |
^= |
Поразрядное исключающее ИЛИ с присваиванием |
|= |
Поразрядное ИЛИ с присваиванием |
3. Ввод и вывод данных
В приведенных выше примерах мы уже рассматривали метод WriteLine, реализованный в классе Console, который позволяет организовывать вывод данных на экран. Однако существует несколько способов применения данного метода:
1. Console.WriteLine(x); //на экран выводится значение идентификатора х
2. Console.WriteLine("x=" + x +"y=" + y); /* на экран выводится строка, образованная последовательным слиянием строки "x=", значения x, строки "у=" и значения у */
Console.WriteLine("x={0} y={1}", x, y); /* на экран выводится строка, формат которой задан первым аргументом метода, при этом вместо параметра {0} выводится значение Ввод данных
Для ввода данных обычно используется метод ReadLine, реализованный в классе Console. Особенностью данного метода является то, что в качестве результата он возвращает строку (string). Пример:
static void Main()
{
string s = Console.ReadLine();
Console.WriteLine(s);
}
Для того чтобы получить числовое значение необходимо воспользоваться преобразованием данных. Пример:
static void Main()
{
string s = Console.ReadLine();
int x = int.Parse(s); //преобразование строки в число
Console.WriteLine(x);
}
Или сокращенный вариант:
static void Main()
{
//преобразование введенной строки в число
int x = int.Parse(Console.ReadLine());
Console.WriteLine(x);
}
3. Для преобразования строкового представления целого числа в тип int мы используем метод int.Parse(), который реализован для всех числовых типов данных. Таким образом, если нам потребуется преобразовать строковое представление в вещественное, мы можем воспользоваться методом float.Parse() или double.Parse().
4. Математические функции — класс Math
№ |
Название |
Описание |
1. |
Math.Abs(<выражение>) |
Модуль |
2. |
Math.Ceiling(<выражение>) |
Округление для большего целого |
3. |
Math.Cos(<выражение>) |
Косинус |
4. |
Math.Е |
Число е |
5. |
Math.Exp(<выражение>) |
Экспонента |
6. |
Math.Floor(<выражение>) |
Округление до меньшего целого |
7. |
Math.Log(<выражение>) |
Натуральный логарифм |
8. |
Math.Log10(<выражение>) |
Десятичный логарифм |
9. |
Math.Max(<выражение1>, <выражение2>) |
Максимум из двух значений |
10. |
Math.Min(<выражение1>, <выражение2>) |
Минимум из двух значений |
11. |
Math.PI |
Число |
12. |
Math.Pow(<выражение1>, <выражение2>) |
Возведение в степень |
13. |
Math.Round(<выражение>) |
Простое округление |
14. |
Math.Sign(<враженыие>) |
Знак числа |
15. |
Math.Sin(<выражение>) |
Синус |
16. |
Math.Sqrt(<выражение>) |
Квадратный корень |
17. |
Math.Тan(<выражение>) |
Тангенс |
5. Пример простейшего приложения базы данных « Студенты» на основе БД «Microsoft Access» в среде Visual Studio язык программирования С#.
Разработать простое приложение баз данных, которое выводит на экранную форму информацию из таблицы «Student» из базы данных Microsoft Access.
1. Создать таблицу ( Таблица1) в базе данных Microsoft Access.( Student)
Таблица 1
2. Создать Windows-приложение в среде VS2010 (язык программирования С#)..
Windows приложение
3. Выполнить привязку данных БД « Student» к форме с помощью компонента «Binding Source», который находится в разделе группы компонентов «Данные»
Привязка БД к пустой форме
На рисунке выделена группа компонентов «Данные» («Data»), которая содержит компоненты для доступа к данным и манипулирования ими. Привязку данных БД к форме осуществляет компонент «Binding Source». Перенесем его на форму. После размещения его на форме среда разработкипринимает следующий вид
Компонент Binding Source на форме
Компонент «Binding Source» является не визуальным, поэтому он отображается на дополнительной панели. Основным свойством компонента является свойство DataSource, указывающее на источник данных. По умолчанию свойство является пустым, поэтому необходимо сформировать его значение. Для выбора данного свойства в разделе Проект выбрать «Добавить новый компонент». После выбора появляется окно
Выбор свойства «добавить новый компонент»
4. Выбираем источник данных в разделе Добавить источник данных проекта
Список источников данных
Для выбора источника данных представляется следующие данные:
- База данных» («Database»);
- Web-сервис;
- Object.
В данном случае необходимо выбрать пункт «База данных» («Database»).
Появляется окно выбора соединения с данными
5. Из списка источников данных компонента «Binding Source» выбираем локальную базу
Выбор локальной базы данных
Целью данного диалога является создание строки соединения, в которой будут описаны параметры соединения для механизма ADO, такие как тип базыданных, ее местонахождение, имена пользователей, средства безопасности и пр. В выпадающем списке диалога находятся все создаваемые ранее соединения. Если необходимого соединения в списке нет, то следует использовать кнопку «Создать подключение» («New connection»). Нажатие кнопки приводит к появлению следующего диалога. В данном диалоге выбирается тип источника данных (в данном случае Microsoft Access), имя базы данных (в данном случае имя и местоположение файла базы данных), имя пользователя и пароль, используемые для подключения к базе данных. Кнопка «Дополнительно» («Advanced») позволяет задать большое количество параметров, относящихся к различным деталям механизма ADO. Использование кнопки «Проверить подключение» («Test Connection») позволит убедиться в правильности введенных параметров и работоспособности соединения.
Следующий шаг диалога предлагает сохранить полученную строку соединения в файле настроек приложения. Рекомендуется принять данный выбор для упрощения последующего размещения и поддержки программного продукта.
6. Выбираем конкретную базу днных « Студенты»
Выбор конкретной базы данных
Целью данного диалога является создание строки соединения, в которой будут описаны параметры соединения для механизма ADO, такие как тип базы данных, ее местонахождение, имена пользователей, средства безопасности и пр. В выпадающем списке диалога находятся все создаваемые ранее соединения.
Если необходимого соединения в списке нет, то следует использовать кнопку «Создать подключение» («New connection»). Нажатие кнопки приводит к появлению следующего диалога
В данном диалоге выбирается тип источника данных (в данном случае Microsoft Access), имя базы данных (в данном случае имя и местоположение файла базы данных), имя пользователя и пароль, используемые для подключения к базе данных. Кнопка «Дополнительно» («Advanced») позволяет задать большое количество параметров, относящихся к различным деталям механизма ADO. Использование кнопки «Проверить подключение» («Test Connection») позволит убедиться в правильности введенных параметров и работоспособности соединения.
Следующий шаг диалога предлагает сохранить полученную строку соединения в файле настроек приложения. Рекомендуется принять данный выбор для упрощения последующего размещения и поддержки программного продукта.
7. Последний шаг диалога – выбор тех таблиц или иных объектов базы данных, которые необходимы в данном источнике данных.
Окно выбора таблиц
В данном окне выбрана таблица. Таким образом источник данных выбран. После нажатия кнопки «Готово» («Finish») рядом с компонентом BindingSource на форме появляется компонент DataSet.
Теперь данные, подключенные выше, необходимо отобразить на форме. Простейшим способом отображения данных является использование компонента DataGridView из группы компонентов Данные. Компонент является визуальным и на форме выглядит следующим образом
.
Компонент DataGridView
В данном случае мы выбрали в качестве источника данных таблицу «Студенты». Данный выбор изменяет экранную форму следующим образом
.
Для упрощения навигации по данным существует компонент
BindingNavigator. Поместим его на форме
Компонент BindingNavigator
Данный компонент позволяет осуществлять навигацию между записями таблицы, добавлять и удалять строки таблицы. Возможности и внешний вид компонента можно настраивать, так как он представляет собой полосу меню ToolStripContainer.
Свойством, определяющим таблицу, по которой производится навигация, является свойство BindingSource. Установим значение этого свойства равным «студентыBindingSource». Редактирование данных в ячейках компонента DataGridView при соответствующих настройках возможно, но неудобно и не рационально. В частности, трудно проверять введенные значения на ошибки. Поэтому для таблицы «Студенты» сделаем экранную форму, позволяющую отображать данные в компонентах TextBox и редактировать их. Для этого разместим на форме контейнер типа Panel, а на нем три компонента TextBox следующим образом
Экранная панель для редактирования таблицы «Студенты».
8. Далее необходимо осуществить привязку компонентов TextBox к соответствующим полям таблицы «Студенты». Для этого используем свойство из группы DataBindings – Advanced,
Свойство «DataBindings – Advanced»
Выбор данного свойства приводит к появлению диалога,
Данный диалог позволяет осуществить не только привязку данных, но также задать событие, в рамках которого будет проводиться обновление данных, а также форматирование данных при их выводе.Для верхнего компонента TextBox в выпадающем списке Binding выберем источником данных «студентыBindingSource» и поле источника – «Фамилия».
Однако при внесении изменений все новые данные остаются только на форме. В базе данных они не сохраняются, и при повторном вызове приложения, конечно же, будут отсутствовать. Это происходит потому, что данные были загружены в объект DataSet, который представляет собой копию таблицы в памяти. Все действия выполняются с этой копией. Для того чтобы изменения отобразились в базе данных, необходимо выполнить метод Update класса TableAdapter.
Таким образом, в разрабатываемом приложении необходимо разместить кнопку «Обновить» и записать в обработчик события Click следующий программный код:
студентыTableAdapter.Update(bDTur_firmDataSet);
Данный код обновляет информацию в таблицах «Студенты», предоставляемых источником данных.
Литература
1. Биллиг В. А. Основы программирования на С#. - М.: Изд-во «Интернет-университет информационных технологий - ИНТУИТ.ру», 2006. - 488 с.
2. Вирт Н. Алгоритмы и структуры данных. - СПб: Невский диалект, 2001. -352 с.
3. Голуб А. И.Си С++. Правила программирования. - М.: Бином, 1996. - 272 с.
5. Гуннерсон Э. Введение в С#. Библиотека программиста. - Пб.: Питер, 2001. - 304 с.
6. Кораблев В. Самоучитель Visual С + + .NET. - СПб.: Питер; Киев: Издательская группа BHV , 2004. - 528 с.
7. Либерти Д. Программирование на С#. - СПб.: Символ-Плюс, 2003. - 688 с.
8.Майо Д. С#. Искусство программирования: Энциклопедия программиста. —Киев: ДиаСофт, 2002. - 656 с.
9. Микелсен К. Язык программирования С#. Лекции и упражнения: Учебник. - Киев: ДиаСофт, 2002. - 656 с.
10. Оньон Ф. Основы ASP.NET с примерами на С #. - М.: Издательский дом «Вильяме», 2003. - 304 с.
11. Павловская Т. А. C/C++. Программирование на языке высокого уровня: Учебник для вузов. - СПб.: Питер, 2001. - 464 с.
12. Павловская Т. А. Паскаль. Программирование на языке высокого уровня:Учебник для вузов. - СПб.: Питер, 2003. - 393 с. Паппас К., Мюррей У. Эффективная работа: Visual С + + .NET. — СПб.: Питер,2002. - 816 с.
13. Петцолъд Ч. Программирование для MS Windows на С#. Т. 1. — М.: Издательско-торговый дом «Русская Редакция», 2002. — 576 с.
14. Петцолъд Ч. Программирование для MS Windows на С#. Т. 2. — М.: Издательско-торговый дом «Русская Редакция», 2002. — 624 с.
15. Пономарев В. А. Программирование на С + + / С # в Visual Studio .NET 2003. Серия «Мастер программ». — СПб.: БХВ-Петербург, 2004. — 352 с.
16. Прайс Д., Гандэрлой М. Visual C#.NET. Полное руководство. — Киев: Век, 2004. - 960 с.
17. Робинсон С, Корнес О., ГлиннДж. и др. С# для профессионалов. В 2 т. — М.:Лори, 2003. - 512 с.
18. Робисон У. С# без лишних слов. — М.: Д М К Пресс, 2002. — 352 с.
19. Секунов Н. Разработка приложений на С + + и С#. Библиотека программиста. — СПб.: Питер, 2003. - 608 с.
20. Секунов Н. Самоучитель С#. Серия "Самоучитель". — СПб.: БХВ-Петербург, 2001. - 576 с.
21. Смайли Д. Учимся программировать на С # вместе с Джоном Смайли. — Киев: «ДиаСофт», 2003. - 528 с.
22. Тай Т., Лэм X. К. Платформа .NET. Основы. — СПб.: Символ-Плюс, 2003. — Троелсен Э. С # и платформа .NET. Библиотека программиста. — СПб.: Питер, 2002. - 796 с.
23. Фролов А. В., Фролов Г. В. Язык С #: Самоучитель. — М.: Диалог-МИФИ, 2003. - 560 с.
24. Шилдт Г. С#: Учебный курс. - СПб.: Питер, 2002. - 512 с: ил.
25. Шилдт Г. Полный справочник по С#. — М.: Издательский дом «Вильяме»,2004. - 752 с.
Оглавление
1. Предисловие…….……........................................... 3
2. Лабораторная работа 1. Структура программ.
Вычисление арифметических выражений.
Консольный вариант…………………………………….4
3. Лабораторная работа 2 .Вычисление арифмети -
ческих выражений. Windows вариант ....................... 9
6. Задания для лабораторной работы.….…………….24
7. Лабораторная работа 3. Вычисление
суммы ряда. Консольный вариант...……………. 26
6 Лабораторная работа 4. Вычисление суммы
ряда. Windows вариант... ….……………………... 31
7.Задания для лабораторной работы…… ……………38
8. Лабораторная работа 5. Одномерные массивы
Консольный вариант……………………………. ....39
9. Лабораторная работа 6. Одномерные массивы
Windows вариант………………………………….49
10. Задания для лабораторной работы……………….60
11. Лабораторная работа 7. Двумерные массивы.....61
12. Задания для лабораторной работы………………69
13. Лабораторная работа 8. Символы..……………71
14. Задания для лабораторной работы………………77
15. Лабораторная работа 9. Графика…………………80
16. Лабораторная работа 10. Построение
графиков функций..……………………………….88
16. Лабораторная работа 11. Динамическая графика.98
17. Лабораторная работа 12. Базы данных. Файлы.107
18. Лабораторная работа 13. Системы управления
базами данных…………………………………….112
19. Задания для лбораторных работ…………………145
20. Задания для контрольных работ…………………146
21. Справка по языку C#.............................................151
22. Литература………………………………………..164
:
Лабораторный практикум
НИКИШЕВ Вячеслав Константинович
Современные языки программировния
Лабораторный
практикум
Редактор М.С.Кулина
Согласно Закону №436-ФЗ от 29 октября 2010 года
дання продукция не подлежит маркировке
Подписано в печать 15.03.2016. Формат 60х80/16.
Бумага газетная.. Печать офсетная. Гарнитура Times.
Усл. печ. л. Уч.-изд. л 167. Тираж 50 экз. Заказ № .
Издательство Чувашского университета
Типография университета
428015 Чебоксары, Московский просп., 15
Скачано с www.znanio.ru
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.