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

Тема в разделе "Pascal and Delphi", создана пользователем vihlyaev, 8 июн 2010.

  1. vihlyaev

    vihlyaev Гость

    Репутация:
    0
    Помогите, пожалуйста. ;)

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

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

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

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

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

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

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

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

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

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

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    Чесно говоря лень делать, может завтра днем сделаю.
     
  3. vihlyaev

    vihlyaev Гость

    Репутация:
    0
    Буду очень благодарен если до 13 00, пожалуйста.
     
  4. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    В глайной диагонали или в обоих?
     
  5. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    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;
    И еще одно, у матриц извесны размеры(просто у паскаля свой геморой с масивами(кроме одномерных))?
     
  6. vihlyaev

    vihlyaev Гость

    Репутация:
    0
    В глайной диагонали. А размеры не извесны
     
  7. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    Код:
    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.
     
Загрузка...

Поделиться этой страницей