1 formato de texto
/// <summary>
/// Lección 2 de "Programas de aprendizaje Xiaobai": matrices y clasificación
/// </summary>
/// <param name="sender"></param>
/// <param name = "e"></param>
private void button2_Click(object sender, EventArgs e)
{ // matriz #1: un conjunto de datos (miembro o unidad) double[] puntuación = { 540, 340, 650, 120, 554, 643, 612, 234, 345, 456 }; // Número de miembros de la matriz int n = 10;
// #2 Imprimir matriz (matriz de salida secuencial)
// Primero forme una cadena larga y luego envíela;
// StringBuilder es la forma más utilizada de combinar datos de cadena en cadenas regulares;
StringBuilder sb = new StringBuilder( );
/ / AppendLine agrega una línea; <br> es una nueva línea;
sb.AppendLine("Puntuación antes de ordenar: <br>");
// #3 Loop
// La oración (declaración) al comienzo de for se convierte en un bucle, que es un procesamiento secuencial;
// Explicación detallada de la declaración for: define un indicador i, de 0 a n-1 = (antes de n) ; agregue 1 cada vez;
// ¡Los indicadores de matriz visibles (subíndices) comienzan desde 0! ! ! ! ! ! !
#región escritura estándar
para (int i = 0; i < n; i++)
{ sb.AppendLine((i + 1) + ": " + puntuación[i] + "<br>"); } sb.AppendLine(" <br>"); #endregion
#region Otra forma de escribir
#if __UNUSED__
// Explicación detallada de la declaración for: define una bandera i, de 1 a n = (n+1); suma 1 cada vez;
for (int i = 1; i < n + 1 ; i++)
{ sb. AppendLine(i + ": " + puntuación[i - 1] + "<br>"); } sb. AppendLine("<br>"); #endif #endregion
// #4 Clasificación
// Bucle de dos capas; a comienza desde la primera y la compara con cada calificación subsiguiente de b; //
Si la calificación de a excede el intercambio de calificaciones de b;
for (int i = 0; i < n - 1 ; i++)
{ for (int j = i + 1; j < n; j++) { if (score[i] > score[j]) { // intercambio; // necesito un pad (stemp) en el medio Para temporal almacenamiento de grado a double temp = puntaje[i]; puntaje[i] = puntaje[j]; puntaje[j] = stemp; } } }
// #5 Salida de resultados ordenados
sb.AppendLine("Puntuaciones después de ordenar de pequeño a grande: <br>");
for (int i = 1; i < n + 1; i++)
{ sb.AppendLine(i + ": " + puntuación[i - 1] + "<br>"); } sb. AppendLine("<br>");
// #6 Salida a un navegador web incorporado exportado
webBrowser1.DocumentText = sb.ToString();
}
2 formato de código
/// <summary>
/// 《小白学程序》第二课:数组与排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
// #1 数组:一组数据(成员 或 单元)
double[] score = {
540, 340, 650, 120, 554,
643, 612, 234, 345, 456
};
// 数组成员的个数
int n = 10;
// #2 打印数组(顺序输出数组)
// 先组成长长的串,最后再输出;
// StringBuilder 是最常用的进行字符串 数据 组合成常常的字符串的方式;
StringBuilder sb = new StringBuilder();
// AppendLine 加一行;<br> 是换行;
sb.AppendLine("未排序之前的成绩:<br>");
// #3 循环
// for 开始的句子(语句)成为循环,就是顺序处理;
// for 语句详解:定义一个标志 i, 从 0 到 n-1 = (n之前);每次加 1 ;
// 可见数组的标志(下标)是从 0 开始的!!!!!!!
#region 标准写法
for (int i = 0; i < n; i++)
{
sb.AppendLine((i + 1) + ": " + score[i] + "<br>");
}
sb.AppendLine("<br>");
#endregion
#region 另一种写法
#if __UNUSED__
// for 语句详解:定义一个标志 i, 从 1 到 n = (n+1)之前;每次加 1 ;
for (int i = 1; i < n + 1; i++)
{
sb.AppendLine(i + ": " + score[i - 1] + "<br>");
}
sb.AppendLine("<br>");
#endif
#endregion
// #4 排序
// 两层循环;a 从第一个开始,每次与后面每一个 b 的成绩比较;
// 如果 a 成绩超过 b 成绩的交换;
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (score[i] > score[j])
{
// 交换;
// 中间需要一块垫板(stemp)用于临时存放 a成绩
double stemp = score[i];
score[i] = score[j];
score[j] = stemp;
}
}
}
// #5 输出排序后的结果
sb.AppendLine("从小到大排序之后的成绩:<br>");
for (int i = 1; i < n + 1; i++)
{
sb.AppendLine(i + ": " + score[i - 1] + "<br>");
}
sb.AppendLine("<br>");
// #6 输出到一个出口嵌入的网页浏览器
webBrowser1.DocumentText = sb.ToString();
}
Tienes mucha suerte de leer el único tutorial de programación real del mundo.