Здравствуйте с корректировкой TurboPascal
Изначальное задание:
Задать однотипные треугольные матрицы А и В размера 5*5 и программно показать, что А*В тоже треугольная матрица.
Решение:
uses crt;
const n=5;
var a,b,c:array[1..n,1..n]of integer;
i,j,k: integer;
begin
clrscr;
randomize;
//создадим 2 верхнетреугольных матрицы
writeln('Матрица А');
for i:=1 to n do
begin
for j:=1 to n do
begin
if j>=i then a[i,j]:=1+random(10)
else a[i,j]:=0;
write(a[i,j]:4);
end;
writeln;
end;
writeln('Матрица B');
for i:=1 to n do
begin
for j:=1 to n do
begin
if j>=i then b[i,j]:=1+random(10)
else b[i,j]:=0;
write(b[i,j]:4);
end;
writeln;
end;
//получаем третью матрицу
writeln('Матрица C=A*B');
for i:=1 to n do
begin
for j:=1 to n do
begin
c[i,j]:=0;
for k:=1 to n do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
write(c[i,j]:4);
end;
writeln;
end;
readln
end.
Изменённое условие задания:
В работе надо "программным" ( а не "визуальным" )
путём определить, что матрица C - треугольная.
То есть, программа должна определить ( рассчитать ),
что C - треугольная матрица и вывести соответствующее
сообщение.
Вообщем вывод матриц я убрал и добавил это условие но что то коряво пашет:
if (i=j) or (i then writeln('Треугольная матрица С');
// Внимание! Если программа не работает, обновите версию!
procedure CreateFile(p:string);
begin
var f:=OpenWrite(p);
Writeln(f,'В чащах юга жил бы цитрус? Да, но фальшивый экземпляръ!');
Writeln(f,'СЪЕШЬ ЖЕ ЕЩЁ ЭТИХ МЯГКИХ ФРАНЦУЗСКИХ БУЛОК, ДА ВЫПЕЙ ЧАЮ');
Writeln(f,'ФлегмаТичНая этА веРБлЮдиЦа жует у пОДЪезда засыХающий горький шиповник');
Writeln(f,'The quick brown fox jumps over the lazy dog');
Writeln(f,'THE FIVE BOXING WIZARDS JUMP QUICKLY');
f.Close
end;
procedure UpFile(p:string);
begin
var a:=ReadAllLines(p);
WriteAllLines(p,a.Select(s->UpperCase(s)).ToArray);
end;
begin
var p:=ReadlnString('Введите имя файла (можно, с путём):');
CreateFile(p);
UpFile(p);
// контроль работы
ReadAllLines(p).Println(NewLine)
end.
Пример работы
Введите имя файла (можно, с путём): MyTest.txt
В ЧАЩАХ ЮГА ЖИЛ БЫ ЦИТРУС? ДА, НО ФАЛЬШИВЫЙ ЭКЗЕМПЛЯРЪ!
СЪЕШЬ ЖЕ ЕЩЁ ЭТИХ МЯГКИХ ФРАНЦУЗСКИХ БУЛОК, ДА ВЫПЕЙ ЧАЮ
ФЛЕГМАТИЧНАЯ ЭТА ВЕРБЛЮДИЦА ЖУЕТ У ПОДЪЕЗДА ЗАСЫХАЮЩИЙ ГОРЬКИЙ ШИПОВНИК
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
THE FIVE BOXING WIZARDS JUMP QUICKLY
using System;
class Programm
{
static void Main()
{
int n=int.Parse(Console.ReadLine());
int[] a=new int [n];
for (int i=0;i<n;i++)
{
a[i]=i;
Console.Write(a[i] + " ");
}
}
}
//C# second problem
using System;
class Programm
{
static void Main()
{
int n=int.Parse(Console.ReadLine());
int[] a=new int [n];
int ma=0,mi=0,ma_p=0,mi_p=0;
for (int i=0;i<n;i++)
{
a[i]=int.Parse(Console.ReadLine);
}
ma=a[0];mi=a[0];ma_p=0;mi_p=0;
for (int i=0;i<n;i++)
{
if (ma<a[i]){ma=a[i];ma_p=i;}
if (mi>a[i]){mi=a[i];mi_p=i;}
}
ma=a[ma_p];
a[ma_p]=a[mi_p];
a[mi_p]=ma;
for (int i=0;i<n;i++){Console.Write(a[i] + " ");}
}
}