1. Разработать таблицу, содержащую следующие сведения о восьми абитуриентах университета: фамилия, оценка за экзамен по математике, оценка за экзамен по физике, сумма за два экзамена. Проходной для поступления равен 8.
2. Добавить в таблицу столбец, в котором будет выводиться ИСТИНА, если абитуриент не имеет «троек», и ЛОЖЬ - в противном случае (использовать логическое умножение).
3. Добавить в таблицу столбец, в котором будет выводиться ИСТИНА, если абитуриент имеет хотя бы одну «пятерку», и ЛОЖЬ в противном случае (использовать логическое сложение).
4. Добавить в таблицу столбец, в котором будет выводиться «зачислен», если сумма абитуриента больше или равна проходному , и «нет», если сумма меньше проходного (использовать условную функцию).
5. Определить, сколько абитуриентов было зачислено в университет (использовать функцию СЧЁТЕСЛИ).
6. Отсортировать таблицу по возрастанию суммы , полученной абитуриентами.
7. Оформить таблицу с использованием различного типа границ, заливки ячеек и шрифтов.
8. Создать гистограмму, отображающую информацию о сумме , набранной каждым абитуриентом.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
procedure MakeFile(path:string);
// не относится к заданию, создает файл Text со 100 числами
begin
WriteLines(path,SeqRandom(100,-99,99).Select(x->x.ToString))
end;
begin
MakeFile('MyFile1.txt');
// теперь у нас есть текстовый файл из 100 случайных чисел
// собственно, решение
var n:=ReadInteger('Укажите количество чисел:');
var a:=ReadLines('MyFile1.txt').Take(n).ToArray;
Writeln('Исходная последовательность'); a.Println;
Writeln('Результирующая последовательность');
a:=a.OrderBy(x->x.Last).ToArray; a.Println;
WriteAllLines('MyFile2.txt',a);
end.
Пример
Укажите количество чисел: 15
Исходная последовательность
51 -9 17 -12 7 -15 -20 50 98 19 56 67 -57 -42 64
Результирующая последовательность
-20 50 51 -12 -42 64 -15 56 17 7 67 -57 98 -9 19
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(16,-20,80); a.Println;
Writeln('S=',a.Where((x,i)->i.IsOdd).Sum)
end.
Пример
61 64 70 22 76 22 18 44 36 53 29 -9 42 -19 66 34
S=211
2. А вот так все еще учат в большинстве школ (стиль образца 70-80х годов века)
const
n=16;
var
i,s:integer;
a:array[1..n] of integer;
begin
Randomize;
s:=0;
for i:=1 to n do begin
a[i]:=Random(101)-20;
Write(a[i],' ');
if i mod 2=0 then s:=s+a[i]
end;
Writeln;
Writeln('S=',s)
end.