аудитория - Как пользоваться книгой? - Что даст переход к PascalABC.NET? - PascalABC.NET
vs «школьные решения» - С чего начать переход? - Характерные ошибки начинающихPascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
Книга содержит 14 основных частей и несколько дополнительных разделов, не имеющих собственной нумерации. Она имеет объем 572 страницы.
Книга не является справочником по операторам языка; вместе с тем она охватывает практически все его элементы по состоянию на 19 октября 2019 года.
По возможности даются необходимые разъяснения к терминам, сопутствующая краткая теория и примеры использования рассматриваемых конструкций PascalABC.NET.
Имеется приложение, состоящее из приведенных в книге исходных текстов 321 программы и двух текстовых файлов.
В конце двенадцати частей книги приводятся задачи для самостоятельного решения. Ответы и пояснения находятся в части 14.
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
Пути и способы достижения эффектов:
Отказ от блок-схем
Автовыведение типов
Динамические массивы и строки переменной длины
Последовательности и кортежи
Использование типов .NET и стандартных коллекций
Многочисленные методы и расширения
Точечная нотация
Применение Microsoft LINQ (Select, Where и др.)
Традиционная схема решения задачи
Составляем блок-схему
Определяем перечень переменных
Пишем код программы
Составляем контрольный пример
Отлаживаем программу на контрольном примере
const
k = 100;
var
i, n, s: integer;
a: array[1..k] of integer;
begin
Read(n);
for i := 1 to n do
Read(a[i]);
s := 0;
for i := 1 to n do
if a[i] >= 0 then
s := s + Sqr(a[i])
else
s := s + 2 * a[i];
Writeln(s)
end.
begin
var n := ReadInteger('Число элементов в массиве');
var a := ReadArrInteger('Введите элементы массива', n);
var s := 0;
for var i := 0 to a.High do
if a[i] >= 0 then
s += Sqr(a[i])
else
s += 2 * a[i];
Println('Сумма элементов массива равна', s)
end.
begin
var n := ReadInteger('Число элементов в массиве');
var a := ReadArrInteger('Введите элементы массива', n);
var s := 0;
for var i := 0 to a.High do
s += a[i] >= 0 ? Sqr(a[i]) : 2 * a[i];
Println('Сумма элементов массива равна', s
end.
begin
var n := ReadInteger('Число элементов в массиве');
var a := ReadArrInteger('Введите элементы массива', n);
var s := a.Sum(p -> p >= 0 ? p * p : 2 * p);
Println('Сумма элементов массива равна', s)
end.
begin
ReadArrInteger(ReadInteger).
Sum(p -> p >= 0 ? p * p : 2 * p).Println
end.
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
√
begin
var (n1, n2) := ReadInteger2('Введите размеры двух массивов:');
var a1 := ArrRandom(n1, 0, 99);
Println('Первый массив:');
a1.Println;
var a2 := ArrRandom(n2, 0, 99);
Println('Второй массив:');
a2.Println;
end.
begin
ReadlnString.ToWords.
Count(c -> c[1].ToLower = 'a').Println
end.
begin
var a := ArrRandom(20, -10000, 10000);
a.Println;
a.Pairwise((p1, p2) -> p1 + p2).
Where(p -> p.IsOdd and (p > 0)).
Count.Println
end.
355 2635 7098 -3342 -8493 8392 4616 9282 1717 -8651 7388
2332 1391 -5344 -8365 -7018 -3459 -8894 -9419 -3035
2990 9733 3756 -11835 -101 13008 13898 10999 -6934 -1263
9720 3723 -3953 -13709 -15383 -10477 -12353 -18313 -12454
9733 10999 3723
3
5 8 1 4 6 1 3 2 1 7
1 1 1 2 3 4 5 6 7 8
[1,1,1] [2] [3] [4] [5] [6] [7] [8]
3 1 1 1 1 1 1 1
3
begin
var (n, k) := ReadInteger2('Введите n и k:');
var a := ArrRandom(n, 10, 99);
a.Println;
var b := a.Batch(n div k).ToArray;
a := b.Select((t, i) -> i.IsEven ? t.Order : t.OrderDescending).
SelectMany(t -> t).ToArray;
a.Println
end.
Введите n и k: 15 3
56 66 86 39 16 92 75 96 62 16 88 65 61 30 17
[56,66,86,39,16] [92,75,96,62,16] [88,65,61,30,17]
[16,39,56,66,86] [96,92,75,62,16] [17,30,61,65,88]
16 39 56 66 86 96 92 75 62 16 17 30 61 65 88
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
program Vasya
const
n = 100;
var
i, k, s: integer;
m: real;
a: array[1..n] of integer;
begin
Write('Число элементов массива: ');
Read(k);
s := 0;
Randomize;
for i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
var
i, k, s: integer;
m: real;
a: array[1..n] of integer;
begin
Write('Число элементов массива: ');
Read(k);
s := 0;
Randomize;
for i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
var
i, k, s: integer;
m: real;
a: array[1..n] of integer;
begin
Write('Число элементов массива: ');
Read(k);
s := 0;
Randomize;
for i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
begin
var k: integer;
Write('Число элементов массива: ');
Read(k);
var s := 0;
Randomize;
var i: integer;
var a: array[1..n] of integer;
for i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
begin
var k: integer;
Write('Число элементов массива: ');
Read(k);
var s := 0;
Randomize;
var i: integer;
var a: array[1..n] of integer;
for i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
begin
var k: integer;
Write('Число элементов массива: ');
Read(k);
var s := 0;
Randomize;
var a: array[1..n] of integer;
for var i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
begin
var k: integer;
Write('Число элементов массива: ');
Read(k);
var s := 0;
Randomize;
var a: array[1..n] of integer;
for var i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
Randomize;
var a: array[1..n] of integer;
for var i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
const
n = 100;
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
Randomize;
var a: array[1..n] of integer;
for var i := 1 to k do
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
Randomize;
var a := new integer[k];
for var i := 0 to k - 1 do // можно вместо k - 1 писать a.High
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
Randomize;
var a := new integer[k];
for var i := 0 to k - 1 do // можно вместо k - 1 писать a.High
begin
a[i] := Random(198) - 98;
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
var a := ArrRandom(k, -99, 99);
for var i := 0 to k - 1 do // можно вместо k - 1 писать a.High
begin
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
var a := ArrRandom(k, -99, 99);
for var i := 0 to k - 1 do // можно вместо k - 1 писать a.High
begin
Write(a[i], ' ');
s := s + a[i]
end;
Writeln;
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
var a := ArrRandom(k, -99, 99);
a.Println;
for var i := 0 to k - 1 do // можно вместо k - 1 писать a.High
s := s + a[i];
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
var a := ArrRandom(k, -99, 99);
a.Println;
for var i := 0 to k - 1 do // можно вместо k - 1 писать a.High
s := s + a[i];
var m := s / k;
Writeln('Среднее = ', m)
end.
begin
var k := ReadInteger('Число элементов массива:');
var s := 0;
var a := ArrRandom(k, -99, 99);
a.Println;
for var i := 0 to a.High
s += a[i];
var m := s / k;
Writeln('Среднее = ', m)
end.
PascalABC.NET:
Введение в современное программирование
28.10.2019
Ростов-на-Дону
begin
var s := SeqRandom(4, 1, 9).Println.Sorted.Println.Sum.Println
end.
5 8 2 6
1 1 2 9
23
SeqRandom – генератор недетерминированной псевдослучайной последовательности значений типа integer. Первый Println выводит 5 8 2 6, после сортировки при втором выводе получили 1 1 2 9 (откуда бы такие значения?), а их сумма (автор кода ожидал ее получить) почему-то равна 23. Но стоит вместо SeqRandom использовать ArrRandom – все станет правильно.
Литература по PascalABС.NET теперь есть!
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть