Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 24
1

Нужны комментарии к коду

15.11.2016, 09:37. Показов 1144. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
uses crt,graph;
const n=2;
var a,a1:array [1..n,1..n] of real;
    b,b1,x:array [1..n] of real;
function f(a,b,c,x:real):real;
begin
f:=-a*x/b+c/b;
end;
var i, j, k,x0,y0: integer;
    delenie,xn,xk,m,z,x1,y1:real;
    s,s1:string;
begin
clrscr;
writeln('Vedite X1:');
readln(a[1,1]);
writeln('Vedite Y1:');
readln(a[1,2]);
writeln('Vedite koeffesent 1:');
readln(b[1]);
writeln('Vedite X2:');
readln(a[2,1]);
writeln('Vedite Y2:');
readln(a[2,2]);
writeln('Vedite koeffesent 2:');
readln(b[2]);
a1:=a;
b1:=b;
writeln('Rasshirenaya matrisa: ');
for i:=1 to n do
 begin
  for j:=1 to n do
  write (a[i,j]:6:2);
  write (b[i]:6:2);
  writeln;
 end;
 
 
for i:=1 to n-1 do
 begin
  for k:=i+1 to n do
   begin
    delenie:= a[k,i] / a[i,i];
    for j:=i+1 to n do
    a[k,j]:= a[k,j] - a[i,j] * delenie;
    b[k]:= b[k] - b[i] * delenie;
   end;
 end;
 
for i:=n downto 1 do
 begin
  for j:= i+1 to n do
  b[i]:= b[i] - a[i,j] * x[j];
  x[i]:= b[i] / a[i,i];
 end;
 
writeln('Otvet : ');
for i:=1 to n do
writeln('X[',i:1,']=', x[i]:1:2);
 
write('Nagmite na libuy klavishu: ');
readln;
x0:=0;
initgraph(x0,y0,'');{инициализация графического режима}
xn:=-16;
xk:=10;{интервал по Х}
x0:=getmaxX div 2;{начало координат по Х}
y0:=getmaxY div 2;{начало координат по Y}
m:=(y0-40)/F(a1[1,1],a1[1,2],b1[1],xk);
line(x0-round(17*m),y0,x0+round(17*m),y0);{оси}
line(x0,0,x0,getmaxY);
for i:=1 to 16 do{максимальное количество засечек в одну сторону}
 begin
  line(x0-3,y0-round(i*m),x0+3,y0-round(i*m));{засечки на оси У}
  line(x0-3,y0+round(i*m),x0+3,y0+round(i*m));
  line(x0+round(i*m),y0-3,x0+round(i*m),y0+3); {засечки на оси Х}
  line(x0-round(i*m),y0-3,x0-round(i*m),y0+3);
  if i mod 2=0 then
   begin{подпись оси У}
    str(i,s);
    outtextXY(x0-25,y0-round(i*m),s);{соответственно засечкам}
    outtextXY(x0-30,y0+round(i*m),'-'+s);{подпись оси Х}
    outtextXY(x0+round(i*m),y0+10,s);
    outtextXY(x0-round(i*m)-10,y0+10,'-'+s);
   end;
 end;{подписи концов осей}
outtextXY(x0+round(16*m),y0-20,'X');
outtextXY(x0+5,10, 'Y');{график}
z:=xn;
setcolor(12);
while z<=xk do
 begin
  if z=xn then moveto(x0+round(z*m),y0-round(F(a1[1,1],a1[1,2],b1[1],z)*m))
  else lineto(x0+round(z*m),y0-round(F(a1[1,1],a1[1,2],b1[1],z)*m));
  z:=z+0.1;
 end;
z:=xn;
setcolor(10);
while z<=xk do
 begin
  if z=xn then moveto(x0+round(z*m),y0-round(F(a1[2,1],a1[2,2],b1[2],z)*m))
  else lineto(x0+round(z*m),y0-round(F(a1[2,1],a1[2,2],b1[2],z)*m));
  if abs(F(a1[1,1],a1[1,2],b1[1],z)-F(a1[2,1],a1[2,2],b1[2],z))<0.01 then
   begin
    x1:=z;
    y1:=F(a1[2,1],a1[2,2],b1[2],z);
   end;
  z:=z+0.1;
 end;
setcolor(14);
setfillstyle(1,14);
fillellipse(x0+round(x1*m),y0-round(y1*m),3,3);{название}
setcolor(14);
str(x1:0:1,s);
str(y1:0:1,s1);
outtextXY(10,120,'x='+s+'  y='+s1);
readln
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2016, 09:37
Ответы с готовыми решениями:

Нужны комментарии к коду
var i,j,n,s,b:integer; begin write('n='); read(n); s:=0; for i:=1 to n do begin ...

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

Комментарии к коду
Здравствуйте. Помогите пожалуйста. Я хочу разобраться в данном коде. Не мог бы кто написать...

Функция Prost (проверка простоты числа), нужны комментарии
function Prost(x:integer):boolean; begin prost:=false; if x=1 then Prost:=true ...

3
27 / 27 / 29
Регистрация: 04.01.2015
Сообщений: 120
15.11.2016, 17:59 2
Лучший ответ Сообщение было отмечено BuLa18 как решение

Решение

Щас сделаю, подождите немного

Добавлено через 24 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
uses crt,graph; //Подключаем консольку и Graph - графический построитель
const //Раздел констант
  n = 2; //Целочисленная константа n = 2
 
var //раздел описания переменных
  a, a1: array [1..n, 1..n] of real; //Объявлены два двумерных массива - a и a1 размерностью n строк и n столбцов, элементы которых типа чисел с плавающей точкой
  b, b1, x: array [1..n] of real; //Три массива b b1 и x, такие же, как и предыдущие только ОДНОмерные
 
function f(a, b, c, x: real): real; //Функция f, приниммает аргументы a, b, c, x типа чисел с плавающей точкой и возвращает число такого же типа
begin //начало тела ф-ии
  f := -a * x / b + c / b; //Задание значения ф-ии выражением -a * x / b + c / b
end; //конец описания ф-ии
 
var //раздел описания переменных
  i, j, k, x0, y0: integer; //Объявлние пяти переменных типа целых чисел
  delenie, xn, xk, m, z, x1, y1: real; //Объявлние семи переменных типа чисел с плавающей точкой
  s, s1: string; //Объявлние двух переменных типа строк
 
begin //начало основного тела программы
  clrscr; //очистка экрана (консоли), она появится на экране
  writeln('Vedite X1:'); //Выводим сообщение Vedite X1:
  readln(a[1, 1]); //считываем элемент массива a[1, 1]
  writeln('Vedite Y1:'); //Выводим сообщение Vedite Y1:
  readln(a[1, 2]); //считываем элемент массива a[1, 2]
  writeln('Vedite koeffesent 1:'); //Выводим сообщение Vedite koeffesent 1:
  readln(b[1]); //считываем элемент массива b[1]
  writeln('Vedite X2:'); //Выводим сообщение Vedite X2:
  readln(a[2, 1]); //считываем элемент массива a[2, 1]
  writeln('Vedite Y2:'); //Выводим сообщение Vedite Y2:
  readln(a[2, 2]);  //считываем элемент массива a[2, 2]
  writeln('Vedite koeffesent 2:'); //Выводим сообщение Vedite koeffesent 2:
  readln(b[2]); //считываем элемент массива b[2]
  a1 := a; //присваиваем a1 a
  b1 := b; //присваиваем b1 b
  writeln('Rasshirenaya matrisa: ');//Выводим сообщение Rasshirenaya matrisa: 
  for i := 1 to n do //запускаем цикл for для i от 1 до n
  begin //начало тела цикла
    for j := 1 to n do //запускаем цикл for для j от 1 до n
      write(a[i, j]:6:2); //выводим a[i, j] в формате 6 знаков и 2 знака после запятой
    write(b[i]:6:2); //выводим b[i] в формате 6 знаков и 2 знака после запятой
    writeln; //выводим конец строки (переход на новую)
  end; //конец тела цикла
  
  
  for i := 1 to n - 1 do //запускаем цикл for для i от 1 до n - 1
  begin //начало тела цикла
    for k := i + 1 to n do //запускаем цикл for для k от i + 1 до n
    begin //начало тела цикла
      delenie := a[k, i] / a[i, i]; //переменной delenie присваиваем a[k, i] / a[i, i]
      for j := i + 1 to n do //запускаем цикл for для j от i + 1 до n
        a[k, j] := a[k, j] - a[i, j] * delenie; //переменной a[k, j] присваиваем a[k, j] - a[i, j] * delenie
      b[k] := b[k] - b[i] * delenie; //переменной b[k] присваиваем b[k] - b[i] * delenie
    end; //конец тела цикла
  end; //конец тела цикла
  
  for i := n downto 1 do //запускаем цикл for для i от n до 1
  begin //начало тела цикла
    for j := i + 1 to n do  //запускаем цикл for для j от i + 1 до n
      b[i] := b[i] - a[i, j] * x[j]; //переменной b[i] присваиваем b[i] - a[i, j] * x[j]
    x[i] := b[i] / a[i, i]; //переменной x[i] присваиваем b[i] / a[i, i] 
  end;//конец тела цикла
  
  writeln('Otvet : ');//выводим сообщение Otvet : 
  for i := 1 to n do //запускаем цикл for для i от 1 до n
    writeln('X[', i:1, ']=', x[i]:1:2);//выводим сообщение 'X[', i:1, ']=', x[i]:1:2
  
  write('Nagmite na libuy klavishu: '); //выводим сообщение Nagmite na libuy klavishu: 
  readln; //считываем сторку вникуда
  x0 := 0; //x0 присваиваем 0
  initgraph(x0, y0, '');{инициализация графического режима}
  xn := -16; //xn присваиваем -16
  xk := 10;{интервал по Х}
  x0 := getmaxX div 2;{начало координат по Х}
  y0 := getmaxY div 2;{начало координат по Y}
  m := (y0 - 40) / F(a1[1, 1], a1[1, 2], b1[1], xk); //m присваиваем (y0 - 40) / F(a1[1, 1], a1[1, 2], b1[1], xk)
  line(x0 - round(17 * m), y0, x0 + round(17 * m), y0);{оси}
  line(x0, 0, x0, getmaxY); //чертим линию из точки (x0, 0) в (x0, getmaxY)
  for i := 1 to 16 do{максимальное количество засечек в одну сторону}
  begin //начало тела цикла
    line(x0 - 3, y0 - round(i * m), x0 + 3, y0 - round(i * m));{засечки на оси У}
    line(x0 - 3, y0 + round(i * m), x0 + 3, y0 + round(i * m)); // Линия
    line(x0 + round(i * m), y0 - 3, x0 + round(i * m), y0 + 3); {засечки на оси Х}
    line(x0 - round(i * m), y0 - 3, x0 - round(i * m), y0 + 3); // Линия
    if i mod 2 = 0 then //если i чётно
    begin{подпись оси У}
      str(i, s); //строка
      outtextXY(x0 - 25, y0 - round(i * m), s);{соответственно засечкам}
      outtextXY(x0 - 30, y0 + round(i * m), '-' + s);{подпись оси Х}
      outtextXY(x0 + round(i * m), y0 + 10, s); //вывод текста
      outtextXY(x0 - round(i * m) - 10, y0 + 10, '-' + s); //вывод текста
    end; //конец if
  end;{подписи концов осей}
  outtextXY(x0 + round(16 * m), y0 - 20, 'X');//вывод текста
  outtextXY(x0 + 5, 10, 'Y');{график} //вывод текста
  z := xn; //присваиваем z значение xn
  setcolor(12); //устанавливаем цвет поля 12
  while z <= xk do  //пока z меньше либо равно xk
  begin //начало тела цикла
    if z = xn then moveto(x0 + round(z * m), y0 - round(F(a1[1, 1], a1[1, 2], b1[1], z) * m)) //если [условие] то перемещаемся в соответствующую точку
    else lineto(x0 + round(z * m), y0 - round(F(a1[1, 1], a1[1, 2], b1[1], z) * m)); //иначе линия в соответствующую точку
    z := z + 0.1; //увеличиваем z на 0.1
  end; //конец цикла
  z := xn; //присваиваем z значение xn
  setcolor(10); //устанавливаем цвет поля 10
  while z <= xk do //пока z меньше либо равно xk
  begin //начало тела цикла
    if z = xn then moveto(x0 + round(z * m), y0 - round(F(a1[2, 1], a1[2, 2], b1[2], z) * m)) //если [условие] то перемещаемся в соответствующую точку
    else lineto(x0 + round(z * m), y0 - round(F(a1[2, 1], a1[2, 2], b1[2], z) * m)); //иначе линия в соответствующую точку
    if abs(F(a1[1, 1], a1[1, 2], b1[1], z) - F(a1[2, 1], a1[2, 2], b1[2], z)) < 0.01 then //если [условие]
    begin //начало if
      x1 := z; //присваиваем x1 z
      y1 := F(a1[2, 1], a1[2, 2], b1[2], z); //присваиваем y1 F(a1[2, 1], a1[2, 2], b1[2], z)
    end;
    z := z + 0.1; //увеличиваем z на 0.1
  end;
  setcolor(14); //устанавливаем цвет поля 14
  setfillstyle(1, 14); //устанавливаем стиль заполнения 14
  fillellipse(x0 + round(x1 * m), y0 - round(y1 * m), 3, 3);{название} //рисуем эллипс
  setcolor(14); //устанавливаем цвет поля 14
  str(x1:0:1, s); //пишем s на поле
  str(y1:0:1, s1); //пишем s1 на поле
  outtextXY(10, 120, 'x=' + s + '  y=' + s1); //выводим текст на поле
  readln //запрашиваем ввод
end. //конец основного тела программы
1
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 24
15.11.2016, 18:05  [ТС] 3
спасибо большое
0
27 / 27 / 29
Регистрация: 04.01.2015
Сообщений: 120
15.11.2016, 18:15 4
BuLa18, не за что, удачи!)
0
15.11.2016, 18:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2016, 18:15
Помогаю со студенческими работами здесь

Нужны блок-схемы к приложенному коду
Не получается сделать блок-схему по коду (2 способа - 2 схемы): uses crt; const nmax=100; var...

Сформировать линейный список, и проверить его на наличие заданного элемента. Нужны комментарии
Ребятки , можете написать комментарии к этому чуду type List = ^Spisok; Spisok = Record next:...

Нужны комментарии к коду
var a:arrayof integer; i,h: integer; begin for i:=-1 to 3 do a:= i mod 2; h:= 0; for i:=-1...

Решето Аткина. Нужны комментарии к коду
Напишите пожалуйста что означает каждая строчка в этой программе program atkin; var...

Перестановка столбцов матрицы (нужны комментарии к коду)
Нашел на форуме код который мне подходит по условию задачи Дана матрица А(n x m). Создать...

Проверить, является ли одно число делителем другого (нужны комментарии к коду)
var a, b: integer; begin readln(a, b); if a mod b = 0 then writeln('да, ', b, '...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru