Annotation: Сопоставляются классы в С++ и C#. Рассматриваются такие вопросы, связанные с классами, как модификаторы доступа, атрибуты, поля, конструкторы, методы, свойства, инкапсуляция, интерфейсы, наследование, неявные преобразования и полиморфизм. Создание объектов, класс System.Object, ключевое слово new. В этой лекции также читатель познакомится со строковыми литералами, с форматными строками, со сравнением строк, с поиском строк с помощью регулярных выражений, с заменой текста. Обсуждаются способы создания массивов, их сортировки и поиска, синхронизация массивов, сравнение массивов с векторами. Многомерные массивы. Коллекции в C#.
Дополнительные материалы к занятию можно скачать
здесь.
Вложенные файлы: Presentation_3.pptx
По способам объявления и инициализации массивов C# больше похож на JavaScript, чем на C++.
Одномерные массивы
C# |
JavaScript |
using System;
class Example
{
static void Main()
{
double[] a = new double[] {8.3,11.6,4.8,23.11,54.03,26.8,9.4};
int n = a.Length;
string str;
int i;
double sum = 0;
for (i = 0; i < n; i++)
{
Console.WriteLine("a["+ i + "] = " + a[i]);
sum += a[i];
}
str = "Сумма массива равна " + sum ;
Console.WriteLine(str);
Console.WriteLine("Нажмите любую кнопку!");
Console.ReadKey();
}
}
|
<html>
<script type="text/javascript">
var i,n,sum,str;
a = new Array(8.3,11.6,4.8,23.11,54.03,26.8,9.4);
n = a.length;
str="";
sum = 0;
for (i = 0; i < n; i++)
{
str+="a["+ i + "] = " + a[i] + "<br>";
sum += a[i];
}
str+= "Сумма массива равна " + sum ;
document.write(str);
</script>
</html>
|
|
|
C++ |
#include<iostream>
#include<math.h>
using namespace std;
void main()
{
double a[]={8.3,11.6,4.8,23.11,54.03,26.8,9.4};
int n=sizeof(a)/sizeof(a[0]);
int i;
double sum=0;
for(i=0;i<n;i++)
{
cout<<"\na["<<i<<"] = "<<a[i];
sum+=a[i];
}
cout<<"\nsum = "<<sum;
}
|
|
Многомерные массивы
Сначала рассмотрим пример на С++ |
Объявление и инициализация многомерных массивов в C# и JavaScript существенно отличается от таковой на C++ |
С++ |
C# |
#include<iostream>
#include<math.h>
using namespace std;
#define n 5 //Количество строк
#define m 3 //Количество столбцов
void main()
{
int i,j;
double d[n][m]= {
{1, 2, 3 },
{4, 5, 6 },
{7, 8, 9 },
{10,11,12},
{13,14,15}
};
cout<<"\nArray 5x3:";
for(i=0;i<n;i++)
{
cout<<"\n";
for(j=0;j<m;j++)
{
cout<<"\t"<<d[i][j];
}
}
cout<<"\n"<<endl;
}
|
using System;
class Example
{
static void print(int[][] alpha)
{
// Отображаем элементы массива
for (int i = 0; i < alpha.Length; i++)
{
for (int j = 0; j < alpha[i].Length; j++)
{
System.Console.Write("{0}{1}", alpha[i][j], j ==
(alpha[i].Length - 1) ? "" : " ");
}
System.Console.WriteLine();
}
}
static void Main()
{
int[][] a = new int[5][];
a[0] = new int[3] { 1, 2, 3 };
a[1] = new int[3] { 4, 5, 6 };
a[2] = new int[3] { 7, 8, 9 };
a[3] = new int[3] { 10, 11, 12 };
a[4] = new int[3] { 13, 14, 15 };
print(a);
System.Console.WriteLine("Нажмите любую кнопку!");
System.Console.ReadKey();
}
}
|
|
|
Объявление и инициализация многомерных массивов в C# и JavaScript существенно отличается от таковой на C++ |
JavaScript |
<html>
<script type="text/javascript">
var i,j,n,str;
a=new Array();
a[0]=new Array(1,2,3);
a[1]=new Array(4,5,6);
a[2]=new Array(7,8,9);
a[3]=new Array(10,11,12);
a[4]=new Array(13,14,15);
m=3;
n=5;
str="";
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
str+=a[i][j]+ " ";
}
str+="<br/>";
}
document.write(str);
</script>
</html>
|
|
Поговорим о способах реализации объектно-ориентированного подхода в C# в сравнении с JavaScript.
C# |
JavaScript |
using System;
class Example
{
class goods
{
public string ProductName;
public DateTime ExpireDate;
public double Price;
}
static void Main()
{
goods Product = new goods();
Product.ProductName = "Сыр голландский";
Product.ExpireDate = new DateTime(2011, 6, 12, 8, 30, 52);
Product.Price = 325;
string str;
str = "Товар: " + Product.ProductName + "\nСрок годности: " +
Product.ExpireDate + "\nЦена: " + Product.Price + " рубля";
Console.WriteLine(str);
Console.WriteLine("Нажмите любую кнопку!");
Console.ReadKey();
}
}
|
<html>
<script type="text/javascript">
var ProductName,Price,ExpireDate,str;
ProductName="Сыр голландский";
Price=325;
ExpireDate=new Date(2011, 6, 12, 8, 30, 52);
Product=new Object;
Product.ProductName=ProductName;
Product.Price=Price;
Product.ExpireDate=ExpireDate;
str="Товар: " + Product.ProductName + "<br/>"
+ "Срок годности: " + Product.ExpireDate
+ "<br>" + "Цена: "
+ Product.Price + " рубля";
document.write(str);
</script>
</html>
|
|
|