Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Асмик Александровна
Статус: Академик
Рейтинг: 8238
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Академик
Рейтинг: 5394
∙ повысить рейтинг »
lamed
Статус: Академик
Рейтинг: 5364
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1188
Дата выхода:07.06.2011, 18:30
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:174 / 176
Вопросов / ответов:1 / 1

Вопрос № 183490: Уважаемые эксперты! Уважаемый lamed (Академик) помогите мне решить задачи как в предыдущей теме! Вот задачи: 1) Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчив...



Вопрос № 183490:

Уважаемые эксперты!
Уважаемый lamed (Академик) помогите мне решить задачи как в предыдущей теме!
Вот задачи:

1) Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k.

2) Для заданной квадратной матрицы найти такие k, что k-ая строка матрицы совпадает с k-тым столбцом.

Отправлен: 02.06.2011, 18:08
Вопрос задал: Посетитель - 372181 (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает lamed (Академик) :
Здравствуйте, Посетитель - 372181!

Задание 1.
1. Постановка задачи.
Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k.
Входные данные: натуральные числа n, k типа integer, одномерный массив натуральных чисел (типа integer) размера n.
Выходные данные: массив натуральных чисел типа integer; количество заполненных элементов массива j.
Ограничения: 0<=K<=9, N>0, 0<=j<=n; a[i]>0, b[j]>0 (здесь i - индекс элемента массива, 0<i<=n);

2. Формализация.
Число a[i] оканчивается на цифру k, значит, a[i] mod 10 =k (1)
Вначале устанавливаем число занятых элементов массива b равным 0.
При выполнении условия (1) увеличиваем значение счетчика j на единицу и заполняем j-й элемент
массива b значением i-го элемента массива a.

3. Блок-схема


4.Программа
Код :
{ Дан массив, состоящий из n натуральных чисел. 
Образовать новый массив, элементами которого будут элементы исходного, 
оканчивающиеся на цифру k. }
{ Pascal-ABC, RFPRO, lamed, Kovrov-city, 02.06.2011 }
const
  n = 10;
var
  a, b: array[1..n] of integer;
  i, j: integer;
  k: integer; { На эту цифру заканчиваются элементы массива b }
begin
  { На эту цифру заканчиваются элементы b }
  readln(k);
  { Ввод массива a }
  for i:= 1 to n do
    readln(a[i]);
  { Формирование массива b }
  
  j:= 0; { Вначале нет элементов, заканчивающихся на k }
  for i:= 1 to n do
    if a[i] mod 10 = k then
      begin
        inc(j);
        b[j]:=a[i];
      end;
  { Печать массива b }
  write('b>');
  for i:= 1 to j do
    write(b[i]:3);
  writeln;
end.


Задание 2
1. Постановка задачи.
Для заданной квадратной матрицы найти такие k, что k-ая строка матрицы совпадает с k-тым столбцом.
Входные данные: натуральное числ n, типа integer, двумерный массив чисел (типа integer) размера n*n.
Выходные данные: последовательность (возможно пустая) натуральных чисел k типа integer;
Ограничения: N>0; 1<=k<=n, 1<=j<=n;

2. Формализация.
В цикле по строкам проверяем соответствие k-строки k-столбцу до тех пор,
пока не обнаружим различные элементы или пока не закончится строка / стобец.
Если расхождений не обнаружено, печатаем номер строки.

3. Блок-схема


4. Программа.
Код :
{ Для заданной квадратной матрицы найт
 и такие k, что k-ая строка матрицы совпадает с k-тым столбцом. }
{ Pascal-ABC, RFPRO, lamed, Kovrov-city, 02.06.2011 }
const
  n = 4;
var
  a: array[1..n, 1..n] of integer;
  k, j: integer;
  eq: boolean;
begin
  { Ввод массива a }
  for k:= 1 to n do
    for j:= 1 to n do
      readln(a[k,j]);

  { Печать массива }
  for k:= 1 to n do
    begin
      for j:= 1 to n do
        write(a[k,j]);
      writeln;
    end;
    
  for k:= 1 to n do
    begin
        eq := true;
        j:= 1;
        while eq and (j<=n) do
          begin
            if (a[k,j]<>a[j,k]) then
              eq := false;
            inc(j);
          end;
        if eq then
          write(k,';');
     end;
  writeln;
end.

Удачи!

Ответ отправил: lamed (Академик)
Ответ отправлен: 02.06.2011, 20:41
Номер ответа: 267545
Россия, Ковров
Тел.: +79107793141

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 267545 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное