Задача по Turbo Pascal

Temka
Сообщения: 3
Зарегистрирован: 08 янв 2008, 19:23

08 янв 2008, 19:31

Помогите решить задачку пожалуйсто кому не тяжело буду очень благодарен!!!
1.Масса 8 литров бензина 5,68 кг. Цистерна имеет объем 500 м3. Хватит ли ее, чтобы вместить А т бензина? :confused:
Настенька
Сообщения: 4
Зарегистрирован: 25 мар 2008, 19:52

25 мар 2008, 20:02

Уважаемые!На вас надежда!помогите маленькой девочке написать программку с помощью Паскаля! Вот условие :Написать программу,которая проверяет,является ли введенная с клавиатуры квадратная матрица магическим квадратом.
Магическим квадратом называется матрица,сумма элементов которой в каждой строке,в каждом столюце и диагонали одинакова.
294 13 8 12 1
753 2 11 7 14
618 3 10 6 15
16 5 9 4
Настенька
Сообщения: 4
Зарегистрирован: 25 мар 2008, 19:52

25 мар 2008, 20:02

блин ,квадраты не получились ))
drummer
Сообщения: 57
Зарегистрирован: 13 янв 2008, 18:43

25 мар 2008, 22:25

Код: Выделить всё

  var a:array[1..100,1..100] of longint;
      i,j,s1,s2,s,n:longint;

procedure input;
begin
     readln(n);
     for i:=1 to n do
        for j:=1 to n do
            read(a[i,j]);
end;

procedure init;
begin
    s:=0;s1:=0;s2:=0;
end;

procedure output(s:string);
begin
     writeln(s);
     readln;
     halt;
end;

procedure solve;
begin
     for i:=1 to n do
        inc(s,a[i,i]);
     for i:=1 to n do
        inc(s1,a[i,n-i+1]);
     if s1<>s then output('NO!');
     for i:=1 to n do
        begin
             s1:=0;s2:=0;
             for j:=1 to n do
                begin
                     inc(s1,a[i,j]);
                     inc(s2,a[j,i]);
                end;
             if (s<>s1)or(s<>s2) then output('NO!');
        end;

end;

begin
     input;
     init;
     solve;
     output('YES!');
end.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

26 мар 2008, 11:25

Temka писал(а):Помогите решить задачку пожалуйсто кому не тяжело буду очень благодарен!!!
1.Масса 8 литров бензина 5,68 кг. Цистерна имеет объем 500 м3. Хватит ли ее, чтобы вместить А т бензина? :confused:
writeln(A/5.68*8>=500)

Вот такое простое решение - а это уже мой тысячный пост на форуме ;)
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Настенька
Сообщения: 4
Зарегистрирован: 25 мар 2008, 19:52

28 мар 2008, 16:06

Скажите пожалуйста а вот эта задача что вы написали это что за задача? не моя ли ??
Serge_Bliznykov
Сообщения: 366
Зарегистрирован: 31 авг 2007, 03:06

29 мар 2008, 10:21

Настенька, а в чём собственно проблема?
ну делаете несколько циклов: сумма по строчкам, сумма по столбцам и сумма по диагоналям (по двум - главной и побочной).
Вначале считаете сумму по чему-то одному (ну, например, по главной диагонале.
или по первой строчке) запоминаете эту полученную сумму.
и потом в цикле проверяет, если сумма подсчитанная не совпала с первой - сразу выход - квадрат НЕ МАГИЧЕСКИЙ, иначе, если все циклы/проверки прошли - то магический. Кстати, это очень удобно оформить в виде функции, ну,
type MyArray = array[1..N] of integer;
что-то вроде function is_magican_square(A:MyArray):boolean;

в чём у вас сложность то?!?!
Настенька
Сообщения: 4
Зарегистрирован: 25 мар 2008, 19:52

03 апр 2008, 09:35

Serge_Bliznykov писал(а):Настенька, а в чём собственно проблема?
ну делаете несколько циклов: сумма по строчкам, сумма по столбцам и сумма по диагоналям (по двум - главной и побочной).
Вначале считаете сумму по чему-то одному (ну, например, по главной диагонале.
или по первой строчке) запоминаете эту полученную сумму.
и потом в цикле проверяет, если сумма подсчитанная не совпала с первой - сразу выход - квадрат НЕ МАГИЧЕСКИЙ, иначе, если все циклы/проверки прошли - то магический. Кстати, это очень удобно оформить в виде функции, ну,
type MyArray = array[1..N] of integer;
что-то вроде function is_magican_square(A:MyArray):boolean;

в чём у вас сложность то?!?!
Сложность в том что я в этом деле полный ноль...вот и ищу помощи у опятных людей
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

03 апр 2008, 10:47

Сумма элементов i-й строки
for j:=1 to 5 do sum:=sum+a[i,j]
Сумма элементов j-го столбца
for i:=1 to 5 do sum:=sum+a[i,j]
Сумма элементов главной диагонали
for i:=1 to 5 do sum:=sum+a[i,i]
Сумма элементов побочной диагонали
for i:=1 to 5 do sum:=sum+a[i,6-i]
Считайте, сравнивайте
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Desos777
Сообщения: 11
Зарегистрирован: 10 окт 2008, 21:27

11 окт 2008, 10:06

Помогите пожалуйста,у меня две проблемы...точнее задачи,если не сложно,через for
y= 0,x<=0
sqr(x)-x, 0<x<=1
sqr(x)-sin(pi)x*x-1
и
y= x*x, x>-5
x/2, x<=-5
Заранее благодарен
Ответить