Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 48
1

Объясните как работает фрагмент программы

08.03.2015, 14:09. Просмотров 1240. Ответов 4
Метки нет (Все метки)

Есть фрагмент программы ↓


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
_____________________________________________________
Write('razmer MxN: ');
readln(m,n)
ClrScr;
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=(exp((j-1)*ln(2)))*(abs((j-3))-1.3);
      k:=0
  if a[i,j]<0 then
   begin
    k:=k+1;
    q:=a[i,j];
    for p:=j downto k+1 do
    a[i,p]:=a[i,p-1];
    a[i,k]:=q;
   end;
   end;
   end;
________________________________________________________
Тут создается матрица "а",и все отрицательные элементы матрицы переносятся в начало строчки.
Каков принцип работы именно этой части кода?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
___________________________________
for i:=1 to m do
 begin
  k:=0;
  for j:=1 to n do
  if a[i,j]<0 then
   begin
    k:=k+1;
    q:=a[i,j];
    for p:=j downto k+1 do
    a[i,p]:=a[i,p-1];
    a[i,k]:=q;
   end;
 end;
___________________________________
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2015, 14:09
Ответы с готовыми решениями:

Объясните как работает цикл For
Совсем не давно начал изучать Паскаль.По своему учебнику дошел до циклов, там есть цикл for,...

Объясните как работает алгоритм
Этот алгоритм парсит числа из строки и сортирует их по возрастанию. Я понял только накапливание...

Объясните как работает программа и как составить для нее блоксхему.
Как работает программа? И где можно почитать про строги и операторы, которые здесь используются? +...

Пожалуйста, объясните как работает программа
как работает? :( var a,b,i:integer; c:integer; f1,f2:text; begin assign(f1,'input.txt');...

4
Модератор
61218 / 45886 / 31672
Регистрация: 18.05.2008
Сообщений: 110,502
08.03.2015, 15:21 2
Лучший ответ Сообщение было отмечено GAlex74 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
for i:=1 to m do//идем по всем строкам
 begin
  k:=0;//перестановок пока нет
  for j:=1 to n do
  if a[i,j]<0 then//если число отрицательное
   begin
    k:=k+1;//считаем
    q:=a[i,j]; //запоминаем его
    for p:=j downto k+1 do//сдвигаем элементы начиная с j влево до k+1
    a[i,p]:=a[i,p-1];
    a[i,k]:=q;//на место k ставим то число
   end;
 end;
1
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 48
08.03.2015, 16:29  [ТС] 3
А что именно считает k?

И "a[i,p]:=a[i,p-1]" - это так-же часть перестановки элементов влево?
0
Модератор
61218 / 45886 / 31672
Регистрация: 18.05.2008
Сообщений: 110,502
08.03.2015, 16:36 4
Лучший ответ Сообщение было отмечено GAlex74 как решение

Решение

Цитата Сообщение от GAlex74 Посмотреть сообщение
А что именно считает k?
Да количество отрицательных, которые переставляем вперед.
Цитата Сообщение от GAlex74 Посмотреть сообщение
это так-же часть перестановки элементов влево?
Конечно, сдвиг это 2 строки
Pascal
1
2
 for p:=j downto k+1 do//сдвигаем элементы начиная с j влево до k+1
    a[i,p]:=a[i,p-1];
1
1 / 1 / 0
Регистрация: 27.02.2015
Сообщений: 48
08.03.2015, 16:50  [ТС] 5
Спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2015, 16:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Множества, объясните как работает программа
var CountMax,CountCurrent,i,lng:byte; s:String; a:set of '0'..'9'; begin cls; writeln('введите...

Пожалуйста, объясните как работает эта программа
Найти в упорядоченном массиве заданный элемент методом деления массива пополам (бинарный поиск) ...

Напишите фрагмент программы
Пожалуйста, напишите фрагмент программы: 1) y = a * b (a + b) 2) y = a * b / a + b Заранее...

Обьяснити фрагмент программы
Ребята у меня вопрос вот сортировка методом выбора uses crt; var n,i,j,r:integer; a:array of...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.