Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Mitti
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 26

График результатов вычислений

12.02.2010, 17:21. Показов 882. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Меня зовут Дима. Учусь на первом курсе и довольно успешно, если не считать до ужаса жадного препода. Задал мне "дополнительную задачу" и как бы я её не решал, ему всё что то не нравится. Не могли бы помочь в одном дельце?
Первоначально смысл был просто написать программу которая бы считала количество действий, которые надо совершить с неким числом К для достижения единицы. Алгоритм изменения К такой: Если К чётное то формула такая К/2, Если К не чётное то 3К+1. Вот саму программу я написал и получилось у меня что то такое:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Program P1;
var
 K,R: Integer;
begin
WriteLn('Enter');
ReadLn(R);
WriteLn;
Write(R);
K := 0;
while R <> 1 do
begin
Inc(K);
if R mod 2 = 0 then R :=R div 2
else R := 3*R+1;
Write('-->',R);
end;
WriteLn;
WriteLn;
WriteLn('Actions:',K);
ReadLn;
end.
Вот как то так. Сдал ему, а он говорит ещё график делать к проге. Кто то может помочь? Или написать или хоть направить в првильном направлении? Просто у самого мозг уже ничего не соображает. Везде цифры,операторы и формулы.
Заранее благодарен за помощь и неудаление темы
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2010, 17:21
Ответы с готовыми решениями:

Создание подпрограммы для сохранения исходных данных и результатов вычислений
Задание: а) Участок опробования - квадрат со координатами центра (А,В), длина стороны квадрата - (С), стороны квадрата совпадают с...

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

Вывод на экран результатов вычислений
Доброй ночи, Прошерстил форум, но к сожалению так и не понял как можно вывести на экран результаты вычислений. Перевод из int в char...

6
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.02.2010, 19:28
Mitti, Что за график Вам нужен? Гистограмма в текстовом режиме - модуль Crt, или настоящий график в графическом режиме- модуль Graph?

Добавлено через 59 минут
В принципе график рисуется так. Но он нормально выглядит при максимальных значениях R до 300, а K до 30. При больших значениях нужно что-то придумывать. Например для R0=25нормально, а для R0=31 нет.
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
Program P1;
uses crt,graph;
var k,r,max,gd,gm,x0,y0,xp,yv,i:integer;
    a:array[1..100] of integer;
    mx,my:real;
    st:string;
begin
clrscr;
write('r=');readln(r);
k:=0;max:=0;
while r <> 1 do
  begin
   inc(K);
   if r mod 2 = 0 then r :=r div 2
   else r := 3*r+1;
   a[k]:=r;{записываем значения в массив}
   if a[k]>max then max:=a[k];{находим максимальное}
   write('-->',a[k]);
  end;
writeln;
writeln('max=',max);
writeLn('k=',k);
write('Press Enter...');
readLn;
gd:=0;
initgraph(gd,gm,'');
x0:=60; {начло координат}
y0:=getmaxY-40;
xp:=getmaxX-25;{верхняя граница}
mx:=(xp-x0)/k;{масштаб по Х}
my:=420/max;{масштаб по У}
line(x0,y0,xp,y0);{ось Х}
outtextXY(xp+5,y0-15,'K');
for i:=0 to k-1 do{засечки и подписи по оси Х}
 begin
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
  str(i+1,st);
  outtextXY(x0+round(i*mx),y0+10,st);
 end;
line(x0,y0,x0,10);{ось У}
outtextXY(x0+10,15,'R');
for i:=1 to round(max/10)+1 do{подписи и засечки по оси У}
 begin
  line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10));
  str(i*10,st);
  outtextXY(x0-25,y0-round(i*my*10),st);
 end;
moveto(x0,y0-round(a[1]*my));{начало графика}
Setcolor(10);
circle(x0,y0-round(a[1]*my),2);{первая точка-кружок}
for i:=1 to k-1 do{остальной график и точки}
 begin
  Setcolor(12);
  lineto(x0+round(i*mx),y0-round(a[i+1]*my));
  Setcolor(10);
  circle(x0+round(i*mx),y0-round(a[i+1]*my),2);
 end;
readln;
end.
0
 Аватар для Mitti
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 26
12.02.2010, 21:37  [ТС]
Puporev, огромное спасибо. Простите что сразу не объяснил всю сложность ситуации. Сам не до конца понял. Теперь всё объяснили. Надо сделать таблицу которая бы соответствовала данному условию. Например в одной колонке число а в другой количество действий до достижения 1. а потом к этой таблице построить график. Всё я совсем в луже. Извиняюсь за дезинформацию(
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
12.02.2010, 22:22
Mitti, Ну так все в принципе также, только создаете 2 массива, один - числа, будет по оси Х, второй - количество действий, по оси У.

Добавлено через 22 минуты
Mitti, Напишите какие числа будут проверяться, то есть массив по оси Х, я завтра переделаю. Сегодня уже поздно.
0
 Аватар для Mitti
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 26
12.02.2010, 22:35  [ТС]
Какие добрые модеры) Редкость. Спасибо огромное. Ну "Количество неважно. Главное найти в графике закономерности. Ну для примера можно взять от 1 до 1000". Вот так этот дядька ругается(
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.02.2010, 07:12
Mitti, Как Вы себе представляете 1000 точек на на оси Х, где всего 640 пикселей, да еще и подписать их нужно?

Добавлено через 34 минуты
Беда Ваша в том, что Вы не представляете суть задачи. Вот написал для вывода результата для чисел от 2 до 31, дальше творите сами, как Вам нужно.
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
Program P1;
uses crt,graph;
var n,k,r,max,gd,gm,x0,y0,xp,yv,i:integer;
    a:array[1..100] of integer;{массив количеств действий}
    mx,my:real;
    st:string;
begin
clrscr;
max:=0;
n:=31;{возьмем числа от 2 до 31}
for i:=2 to n do
 begin
  k:=0;
  r:=i;
  while r <> 1 do
   begin
    inc(k);
    if r mod 2 = 0 then r :=r div 2
    else r := 3*r+1;
   end;
  a[i]:=k;{записываем значения в массив}
  if a[i]>max then max:=a[i];{находим максимальное}
  write('-->',a[i]);
 end;
writeln;
writeln('max=',max);
write('Press Enter...');
readLn;
gd:=0;
initgraph(gd,gm,'');
x0:=60; {начало координат}
y0:=getmaxY-40;
xp:=getmaxX-10;{правая граница}
mx:=(xp-x0)/(n-1);{масштаб по Х}
my:=420/max;{масштаб по У}
line(x0,y0,xp,y0);{ось Х}
outtextXY(xp-5,y0-15,'N');
for i:=0 to n-2 do{засечки и подписи по оси Х}
 begin
  line(x0+round(i*mx),y0+3,x0+round(i*mx),y0-3);
  str(i+2,st);
  outtextXY(x0+round(i*mx),y0+10,st);
 end;
line(x0,y0,x0,10);{ось У}
outtextXY(x0+10,15,'K');
for i:=1 to round(max/10)+1 do{подписи и засечки по оси У}
 begin
  line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10));
  str(i*10,st);
  outtextXY(x0-25,y0-round(i*my*10),st);
 end;
moveto(x0,y0-round(a[1]*my));{начало графика}
Setcolor(10);
circle(x0,y0-round(a[1]*my),2);{первая точка-кружок}
for i:=1 to n-2 do{остальной график и точки}
 begin
  Setcolor(12);
  lineto(x0+round(i*mx),y0-round(a[i+2]*my));
  Setcolor(10);
  circle(x0+round(i*mx),y0-round(a[i+2]*my),2);
 end;
readln;
end.
0
 Аватар для Mitti
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 26
13.02.2010, 09:56  [ТС]
Доброе утро. я не отрицаю. Не понимаю её совершенно т.к. до этого учил в школе "С". Спасибо Вам огромнейшее, если будет работать Даже не знаю как вас зовут(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.02.2010, 09:56
Помогаю со студенческими работами здесь

Неверный вывод результатов вычислений.
вот написал код function to(keys, x2, y, mode) { mob = entity; echo(x2 - entity.pos.x); x1 =x2 -...

Реализовать гистограмму из результатов вычислений
Здравствуйте господа! Возникла проблема в реализации задачи. Не пойму как собрать гистограмму из результатов вычислений. код работает (сюда...

Запись результатов вычислений в теле цикла
пожалуйста подскажите: как можно добавлять в уже существующий файл результаты вычислений , которые выполняются в теле цикла

NetBeans. Последовательный вывод результатов вычислений
Добрый день! Большая просьба помочь в вопросе по NetBeans! Есть программа, в которой цикл последовательно проводит вычисления и на...

Стенд на основе КР580. Анализ результатов вычислений
Здраствуйте, не могу найти ошибку в программе... Вот такое вот задание:произвести суммирование чисел, находящихся в ячейках 0900h и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru