Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачки на 3 темы!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
D.Nuke
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
Сроки выполнения и сумма, которую готов заплатить?
D.Nuke
Цитата(volvo @ 4.05.2006 18:05) *

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

А как ты можешь оценить эти 3 задачи?!
volvo
Я не знаю, сколько есть времени, во-первых. А во-вторых: ты платишь - ты и говори, сколько ты МОЖЕШЬ заплатить... А я буду решать, подходит это мне или нет...
D.Nuke
Цитата(volvo @ 4.05.2006 20:16) *

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

Просто дело в том, что я на 2 курсе в техникуме и таких больших денег у меня к сожалению нет!!! Я бы с удовольствием отдал и 1000 рублей, но таких денег у меня нет! sad.gif
Так что я даже не знаю!!! Можешь конечно и не решать... И тему можно удалить!!!
Как хочешь!
мисс_граффити
во-первых, посоветовала бы воспользоваться поиском. (странно, что volvo еще этого не сказал....)
если уж совсем никак-пиши в личку или аську, договоримся.
D.Nuke
Цитата(мисс_граффити @ 5.05.2006 15:49) *

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

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

Тебе про поиск еще раз сказать? Ссылки - в моей подписи. Правила для тебя что, особенные? Мне почему-то так не кажется...
Bokul
Могу 2-ую решить, если обяснишь что такое транспортирование матрици и "п.п."
volvo
Можешь - решай. Задача не в разделе "За деньги"... Загляни в Поиск, чего так упорно не хочет делать автор вопроса (это, видимо, нужно сделать за него), и сразу и решишь... Транспонирование это.

Вот тут решалось:
Транспонировать матрицу

P.S. ВСЕ (абсолютно, без исключения) задания (вместе с подзаданиями) решались на форуме. Так что, D.Nuke, ты просто лентяй.
Bokul
Вот обещанное решение 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
вот концовка решение:
Код

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-ий елемент как суму всех
елементов етого массива.
Ето понадобилося б для форматиного вывода массива...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.