процедуры/функции на Паскале

  • Автор темы vihlyaev
  • Дата начала
V

vihlyaev

#1
Помогите, пожалуйста. ;)

1. Написать процедуру/функцию определения является ли
заданная текстовая строка записью положительного целого числа.

2. Написать процедуру/функцию определения является ли
заданная текстовая строка записью отрицательного целого числа.

3. Написать процедуру/функцию нахождения суммы
квадратов диагональных элементов заданной квадратной матрицы.

4. Написать процедуру/функцию нахождения суммы
квадратов положительных диагональных элементов заданной квадратной матрицы.

5. Написать процедуру/функцию нахождения суммы
квадратов отрицательных диагональных элементов заданной квадратной матрицы..

6. Написать процедуру/функцию нахождения произведения
диагональных элементов заданной квадратной матрицы.

7. Написать процедуру/функцию нахождения произведения
не нулевых диагональных элементов заданной квадратной матрицы.

8. Написать процедуру/функцию определения количества
символов «пробел» во всех строках заданного текстового файла.

9. Написать процедуру/функцию нахождения произведения
положительных диагональных элементов заданной квадратной матрицы.

10. Написать процедуру/функцию нахождения произведения
отрицательных диагональных элементов заданной квадратной матрицы.
 
V

vihlyaev

#3
Буду очень благодарен если до 13 00, пожалуйста.
 
09.11.2009
665
1
#5
1. Написать процедуру/функцию определения является ли
заданная текстовая строка записью положительного целого числа.
Код:
function pol_chislo(s:string):boolean;
var x:real; c:integer;
begin
val(s,x,c);
if c <> 0 then pol_chislo:=false
else
if (x>0)and(x=trunc(x)) then pol_chislo:=true
else pol_chislo:=false;
end;
2. Написать процедуру/функцию определения является ли
заданная текстовая строка записью отрицательного целого числа.
Код:
function minus_chislo(s:string):boolean;
var x:real; c:integer;
begin
val(s,x,c);
if c <> 0 then minus_chislo:=false
else
if (x<0)and(x=trunc(x)) then minus_chislo:=true
else minus_chislo:=false;
end;
И еще одно, у матриц извесны размеры(просто у паскаля свой геморой с масивами(кроме одномерных))?
 
09.11.2009
665
1
#7
Код:
const m=5;
n=3;

type mas=array[1..m,1..n] of integer;

var i,j,x:integer;
a:mas;


function sum_sqr_diagon(ar:mas):real; {№3}
var i,j:integer;
sum:real;
begin
sum:=0;
j:=m;
if j>n then j:=n;
for i:=1 to j do
sum:=sum+sqr(ar[i,i]);
sum_sqr_diagon:=sum;
end;

function pol_sum_sqr_diagon(ar:mas):real; {№4}
var i,j:integer;
sum:real;
begin
sum:=0;
j:=m;
if j>n then j:=n;
for i:=1 to j do
if ar[i,i]>0 then sum:=sum+sqr(ar[i,i]);
pol_sum_sqr_diagon:=sum;
end;

function minus_sum_sqr_diagon(ar:mas):real; {№5}
var i,j:integer;
sum:real;
begin
sum:=0;
j:=m;
if j>n then j:=n;
for i:=1 to j do
if ar[i,i]<0 then sum:=sum+sqr(ar[i,i]);
minus_sum_sqr_diagon:=sum;
end;

function proz_diagon(ar:mas):real; {№6}
var i,j:integer;
sum:real;
begin
sum:=1;
j:=m;
if j>n then j:=n;
for i:=1 to j do
sum:=sum*ar[i,i];
proz_diagon:=sum;
end;

function nenol_proz_diagon(ar:mas):real; {№7}
var i,j:integer;
sum:real;
begin
sum:=1;
j:=m;
if j>n then j:=n;
for i:=1 to j do
if ar[i,i]<>0 then sum:=sum*ar[i,i];
nenol_proz_diagon:=sum;
end;

function pol_proz_diagon(ar:mas):real; {№9}
var i,j:integer;
sum:real;
begin
sum:=1;
j:=m;
if j>n then j:=n;
for i:=1 to j do
if ar[i,i]>0 then sum:=sum*ar[i,i];
pol_proz_diagon:=sum;
end;

function minus_proz_diagon(ar:mas):real; {№10}
var i,j:integer;
sum:real;
begin
sum:=1;
j:=m;
if j>n then j:=n;
for i:=1 to j do
if ar[i,i]<0 then sum:=sum*ar[i,i];
minus_proz_diagon:=sum;
end;

function get_kol_spece_in_file(way:string):integer; {№8}
var f:text;
s:string[1];
k:integer;
begin
k:=0;
assign(f,way);
reset(f);
while not eof(f) do
while not eoln(f) do
begin
read(f,s);
if s=' ' then k:=k+1;
end;
close(f);
get_kol_spece_in_file:=k;
end;

begin
for i:=1 to m do {считываем елементы масива с клавиатуры}
for j:=1 to n do
begin
readln(x);
a[i,j]:=x;
end;
end.