Представлю два варианта:
- С использованием PascalABC.NET
- С использованием обычного Pascal
Версия PascalABC.NET - 3.4.2, сборка 1978 (12.02.2019)
Var i,n: integer;
s,t: real;
begin
write('n = '); readln(n);
s:=1; t:=1; i:=1;
repeat
t:=t/i;
s:=s+t;
i:=i+1;
until i>n;
writeln('сумма ряда: ',s:7:5);
<span>end.
</span>
#include <stdio.h>
void sort(int in[], int a, int b) {
int i,j,mode;
if (a >= b) return;
for (i=a, j=b, mode=1; i < j; mode >0 ? j-- : i++)
if (in[i] > in[j]) {
int c = in[i];
in[i] = in[j];
in[j] = c;
mode = -mode;
}
sort(in, a, i-1);
sort(in, i+1, b);
}
int main(void) {
int m = 0; int x = 0;
int a[10] = {-8,-10,5,6,-10,-3,9,-7,-7,-8};
printf("\nИзначальный массив: ");
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод обменом (пузырьком): ");
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9-i; j++) {
if (a[j] < a[j + 1]) {
m = a[j];
a[j] = a[j + 1];
a[j + 1] = m;
}
}
}
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод вставкой: ");
for (int i = 0; i < 10; i++) {
x = a[i];
m = i;
while (m > 0 && a[m - 1] > x) {
a[m] = a[m - 1];
m = m - 1;
}
a[m] = x; }
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод выбором: ");
for (int i = 0; i < 10; i++) {
m = i;
for (int j = i + 1; j < 10; j++) {
if (a[j] > a[m]) {
m = j;
}
}
x = a[i];
a[i] = a[m];
a[m] = x;
}
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
printf("\nМетод разделением (qsort): ");
sort(a, 0, 9);
for (int i = 0; i < 10; i++) {
printf("%i ", a[i]);
}
return 0;
}