Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задачки на 3 темы!

Автор: D.Nuke 4.05.2006 20:00

1 задача:
С клавиатуры одной строкой вводится 20 чисел в диапозоне 1<=x<=20. Вывести его на экран принтера.
Вычислить сумму тех элементов массива "х", индексы которых совпадают со значением элемента массива. Подстчитать чх количество, сумму и среднее арифметическое. Вывести на принтер и на экран красным цветом.

2 задача:
Любые целые числа вводятся с клавиатурыю
1. Получите матрицу 4х4.
2. Подсчитайте количество всех отрицательных элементов матрицы, замените диагональные элементы на это число.
3. Транспортируйте матрицу.
4. Образуйте из отрицательных элементов одномерный массив, отсортируйте его по не возрастаниюметодом "пузырька". Элементы матрицы п.п. 1-3 выводить на экран с заданием формат, п.4 - в столбец.

3 задача:
Написать программу: подтвердить или опровергнуть утверждение.
Дана последовательность натуральных чисел 1,2,3,4,,,х,,
Утверждение: произведение 4-х последовательных чисел всегда делится на 12.
Результат решения и заключение выводить на экран.
Количество членов последовательности для доказательства задаётся генератором случайных чисел в диапазоне 8<=x<15.

Автор: volvo 4.05.2006 21:05

Сроки выполнения и сумма, которую готов заплатить?

Автор: D.Nuke 5.05.2006 0:11

Цитата(volvo @ 4.05.2006 18:05) *

Сроки выполнения и сумма, которую готов заплатить?

А как ты можешь оценить эти 3 задачи?!

Автор: volvo 5.05.2006 0:16

Я не знаю, сколько есть времени, во-первых. А во-вторых: ты платишь - ты и говори, сколько ты МОЖЕШЬ заплатить... А я буду решать, подходит это мне или нет...

Автор: D.Nuke 5.05.2006 0:19

Цитата(volvo @ 4.05.2006 20:16) *

Я не знаю, сколько есть времени, во-первых. А во-вторых: ты платишь - ты и говори, сколько ты МОЖЕШЬ заплатить... А я буду решать, подходит это мне или нет...

Просто дело в том, что я на 2 курсе в техникуме и таких больших денег у меня к сожалению нет!!! Я бы с удовольствием отдал и 1000 рублей, но таких денег у меня нет! sad.gif
Так что я даже не знаю!!! Можешь конечно и не решать... И тему можно удалить!!!
Как хочешь!

Автор: мисс_граффити 5.05.2006 19:49

во-первых, посоветовала бы воспользоваться поиском. (странно, что volvo еще этого не сказал....)
если уж совсем никак-пиши в личку или аську, договоримся.

Автор: D.Nuke 6.05.2006 20:05

Цитата(мисс_граффити @ 5.05.2006 15:49) *

во-первых, посоветовала бы воспользоваться поиском. (странно, что volvo еще этого не сказал....)
если уж совсем никак-пиши в личку или аську, договоримся.

Ну хотя бы 1 задачку можете сделать!?
Я даже не знал, что тема "Задачки на заказ" - это за деньги... Думал, что люди помогают... В общем так!!!

Автор: volvo 6.05.2006 22:18

Перенесено из "Задач на заказ"

Тебе про поиск еще раз сказать? Ссылки - в моей подписи. Правила для тебя что, особенные? Мне почему-то так не кажется...

Автор: Bokul 6.05.2006 22:49

Могу 2-ую решить, если обяснишь что такое транспортирование матрици и "п.п."

Автор: volvo 6.05.2006 22:58

Можешь - решай. Задача не в разделе "За деньги"... Загляни в Поиск, чего так упорно не хочет делать автор вопроса (это, видимо, нужно сделать за него), и сразу и решишь... Транспонирование это.

Вот тут решалось:
http://forum.pascal.net.ru/index.php?s=&showtopic=10009&view=findpost&p=65276

P.S. ВСЕ (абсолютно, без исключения) задания (вместе с подзаданиями) решались на форуме. Так что, D.Nuke, ты просто лентяй.

Автор: Bokul 6.05.2006 23:55

Вот обещанное решение 2-ой задачи.
Все подпункты задания, кроме формативного вывода( ты мне ответа не дал), реализованные в процедурах и функциях.
Все проверить не успел, так как надо бежать...
Будут вопросы спрашивай, я часа через 2 верннусь...

Код
program help;
uses crt;
type
    main=array[1..4,1..4] of integer;
    neg=array[1..17] of integer;

procedure take_mas(var mas:main);
var i,j:byte;
begin
writeln('Enter array ');
for i:=1 to 4 do
    begin
         for j:=1 to 4 do
             read(mas[i,j]);
         writeln;
    end;
end;

function number(mas:main):byte;
var i,j,n:byte;
begin
n:=0;
for i:=1 to 4 do
    for j:=1 to 4 do
        if mas[i,j]<0 then inc(n);
number:=n;
end;

procedure diagonal(n:byte; var mas:main);
var i,j:byte;
begin
for i:=1 to 4 do
    for j:=1 to 4 do
        if i=j then mas[i,j]:=n;
end;

procedure transport(var a:main);
var i,j:byte;
    p:main;
begin
for i:=1 to 4 do
    for j:=1 to 4 do
        p[j,i]:=a[i,j];

for i:=1 to 4 do
    for j:=1 to 4 do
        a[i,j]:=p[i,j];
end;

procedure mas_negativ(mas:main; var mas2:neg);
var i,j,n:byte;
begin
n:=0;
for i:=1 to 4 do
    for j:=1 to 4 do
        if mas[i,j]<0 then
           begin
                mas2[(i-1)*4+j]:=mas[i,j];
                inc(n);
           end;
mas2[17]:=n;
end;

procedure sort(var mas:neg);
var i,j,t:integer;
begin
     for i:=1 to 4 do
         for j:=4 downto i+1 do
             if mas[pred(j)] > mas[j] then
                begin
                     t:=mas[pred(j)];
                     mas[pred(j)]:=mas[j];
                     mas[j]:=t;
                end;
end;

Автор: Bokul 7.05.2006 23:02

вот концовка решение:

Код

Var mas:main;
      min:neg;
begin
take_mas(mas); {Заполняем массив}
diagonal(number(mas),mas); {сначала считаем количество отрицальных елементов (функция number),
                     а потом заменяем диагональные элементы на это число }
transport(mas);{транспортируем матрицу}
mas_negativ(mas,min);{формируем одномерный массив отрицательных елементов массива  mas}
sort(min); {сортируем еге}
end;

Ище одно: надо изменить количество елементов массива neg на 16.
Сначала я предпологал использовать 17-ий елемент как суму всех
елементов етого массива.
Ето понадобилося б для форматиного вывода массива...