Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 13
1

Прокомментировать код

09.11.2011, 21:57. Показов 1556. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ситуация следующая: знакомый написал программу,которую надо было сросно сдать(для промежуточной аттестации)и уехал в командтровку-на связь не выходит.В итоге у меня на руках идеально работающая программа,но объяснить как я ее решал не могу.
Большая просьба для крутых программеров:объясните в чем общая идея решения для таких задач и по возможности прокомментируйте поэтапно программу(напрмер ввели число и поделили его целочисленно/с остатком для того чтобы..., здесь ипользум оператор с предусловием и т.д.)

Собственно сам материал:
Program Pr21;
1. Вводится целое число, большее 7. Написать программу, которая будет раскладывать введенное число на сумму чисел 5 и 3 таким образом, чтобы количество пятерок в этом разложении было максимальным.


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
Uses crt;
Var x,c,b,f:integer ;
 
begin
  clrscr;
  x:=0;
  while x<8 do
  begin
  writeln('Vvedite chislo bolshe 7');
  readln(x);
  end;
  c:=x div 5;
  b:=x mod 5;
  if b>0 then
       begin
       if b=3 then
       f:=b div 3
       else
          begin
          while x>0 do
          begin
          b:=b+5;
          c:=c-1;
          x:=b mod 3;
          f:=b div 3;
          end;
          end;
       end;
  writeln('Pyaterok: ',c);
  writeln('Troek: ',f);
  write('dlya vihoda davi na Enter');
  readln;
end.
Препод также спросил,почему число больше 7.Я ответил,что по условию.Ее не устроило.
Потом понял,что мы не можем брать числа меньшие семи т.к. потом в программе появятся дроби-прав ли я?





И еще
Кто может укажите ошибки в следующих программах(или предложите альтернативный вариант.)»Плохо» работают или не работают все задачи кроме последней.


2. Найти все положительные четырехзначные числа, для которых одновременно выполняются следующие условия:
• в его состав входят разные цифры;
• разность двух чисел, составленных из первых двух цифр и двух последних, равна сумме его цифр.
Задачу решить, используя в алгоритме наименьшее количество повторов в циклах.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program pr2;
uses crt;
var i,n,c1,c2,c3,c4:integer;
begin
n:=0;
for i:=1000 to 9999 do
begin
c1:=i div 1000;
c2:=(i div 100) mod 10;
c3:=(i div 10) mod 10;
c4:=i mod 10;
if(c1=c2)or(c1=c3)or(c1=c4)or(c2=c3)or(c2=c4)or(c3=c4) then continue;
if(10*c1+c2)-(10*c3+c4)=c1+c2+c3+c4 then
writeln(i);
end;
writeln(n);
readln;
end.
3. Найти число "счастливых" билетов в катушке, состоящей из 1000000 билетов с шестизначными номерами. "Счастливым" считается билет, у которого суммы трех первых и трех последних цифр совпадают.

Первый вариант программы
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rogram Project3;
Uses CRT;
var i,n:longint;
begin
clrscr;
n:=0;
for i:=111110 to 999999 do
if (i mod 10)+((i div 10)mod 10)+((i div 100)mod 10) =
((i div 1000)mod 10)+((i div 10000)mod 10)+(i div 100000)
then inc(n);
writeln(n);
writeln('Davi Enter');
readln;
end.
№4_1
Задан одномерный массив целых чисел. Пользователь вводит число. Выяснить, есть ли это число в массиве. В случае, если заданного пользователем числа в массиве нет, вывести число, ближайшее к введеному в сторону увеличения.

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
Uses crt;
 
var mas: array [1..100] of integer;
    pom: array [1..100] of integer;
    
i,k,j,n,max: integer; ch,bliz,min:integer;
begin
write ('Введите кол-во элементов массива '); readln (n);
Randomize;
for i:=1 to n do begin
mas [i]:=random (50);
write (mas[i],' ');
end;
writeln;
write ('Введите число '); readln (ch);
for i:=1 to n do
if mas[i]=ch then k:=k+1;
if k<>0 then writeln ('Число в массиве есть')  else begin
writeln ('Числа в массиве нет');
j:=0;
for i:=1 to n do
if mas[i]>ch then begin
j:=j+1;
pom[j]:=mas[i];
end;
{writeln (j);
for i:=1 to j do write (pom[i],' ');}
bliz:=pom[1];
for i:=2 to j do
if pom[i]<bliz then bliz:=pom[i];
max:=mas[1];
for i:=2 to n do
if pom[i]>max then max:=pom[i];
if ch>max then writeln ('Число больше максимального в массиве') else writeln ('Ближайшее число: ', bliz);
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2011, 21:57
Ответы с готовыми решениями:

Прокомментировать код
Программа перевода чисел в десятичную систему счисления Program perev_10; var X,A,B:integer; ...

Прокомментировать код
uses crt; const max_notes_number = 8; menu_number = 5; key_down = #80; key_up =...

Прокомментировать код
кто может объяснить код?? uses graphABC; function ris(x,y,r,n:integer):integer; begin if n=0...

Прокомментировать код
Объясните, пожалуйста, программу, если можно, то по строчкам

1
SuPeR XaKer
09.11.2011, 22:05     Прокомментировать код
  #2
 Комментарий модератора 
оформляйте код тегами
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2011, 22:05

Прокомментировать код
Объясните пожалуйста как работает программа (что делает каждая строчка) program pr8; uses crt;...

Прокомментировать код
uses crt; var s,sl,smax: string; i,dmax: integer; begin write('Введите строку ');...

Прокомментировать код
Доброго времени суток! Мой учитель по программированию очень любит придраться к коду и спросить о...

Прокомментировать код
Program z; uses crt; const max=100; var s:array of char; n,i,j:byte; c:char; begin...


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

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