Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173

Системное програм-е и Модуль Graph

12.10.2011, 21:40. Показов 912. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Помогите решить задачи:

1) Сгенерировать одномерный массив и вывести на экран, далее представить его в виде двумерного массива в котором все нулевые элементы расположены на главной диагонали и в нижней половине области ниже диагонали. Вывести элемент массива (двумерного) который запрашивает пользователь по номеру.
2) Функция StrSpn(s,s1). Найти длину той части строки s, которая содержит только символы из строки s1.
(P.S. находил подобную программу только на С++, но на нее не ответили)
3) Построить график функции: 2*x^3+2*x. Окно для вывода: (10,10,410,210). За окном изображение сохраняется.

Буду признателен даже за небольшую помощь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2011, 21:40
Ответы с готовыми решениями:

Модуль graph.
Помогите составить процедуру постепенного построения трехмерного изображения одноэтажного дома с треугольной крышей. вот что есть а...

модуль Graph
помогите, пожалуйста, решить! построить график функции у=1/(x^2-x+1), где х принадлежит предварительно выбрав расположение...

Модуль Graph
Составить программу для построения заданного изображения, применив какой-нибудь способ раскраски, и размножить его на экране (получить не...

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.10.2011, 13:42
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
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
uses graph;
function F(x:real):real;
begin
F:=2*x*x*x+2*x;
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    x0,y0,i,px,py:integer;
    s:string;
begin
x0:=0;
initgraph(x0,y0,'');
setbkcolor(15);{цвет фона}
setcolor(14);
rectangle(10,10,410,210);
setfillstyle(1,14);
floodfill(15,15,14);
SetViewPort(10,10,410,210,clipoff);
x0:=200;{центр окна}
y0:=100;
xn:=-5;xk:=5;{интервал по Х}
mx:=400/(xk-xn);{масштаб по Х}
my:=90/F(xk);{по У}
setcolor(8);{цвет линий}
line(-10,y0,getmaxX-10,y0);{оси}
line(x0,-10,X0,getmaxY-10);
for i:=1 to 20 do{максимальное количество засечек в одну сторону}
  begin
   line(x0-3,y0+round(100*i*my),x0+3,y0+round(100*i*my));{засечки на оси У}
   line(x0-3,y0-round(100*i*my),x0+3,y0-round(100*i*my));
   {подпись оси У}
   str(i*100,s);
   outtextXY(x0-35,y0+round(100*i*my),'-'+s);{соответственно засечкам}
   outtextXY(x0-35,y0-round(100*i*my),s);
   line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
   line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
   {подпись оси Х}
   str(i,s);
   outtextXY(x0+round(i*mx),y0+10,s);
   outtextXY(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-20,y0-10,'X');
outtextXY(x0+10,10,'Y');
setcolor(8);
{график}
x:=xn-10*mx;{от начала экрана}
dx:=0.001;
while y0-round(y*my)>-10 do{до выхода за экран вверху}
   begin
     x:=x+dx; {наращиваем х}
     px:=x0+round(x*mx); {изменение по оси Х}
     y:=F(x); {график в реальных координатах}
     py:=y0-round(y*my);{в экранных}
     putpixel(px,py,8);
   end;
readln
end.
1
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
13.10.2011, 21:45  [ТС]
Puporev
Огромное спасибо.
0
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
18.10.2011, 14:41  [ТС]
2.
Программа у меня не запустилась, т.к. модуль graph не был инициализирован. Короче я поправил и вот что получилось. Теперь (по моему мнению) все как надо. Еще раз спасибо Puporev, за помощь!
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
Program Primer;
uses crt,graph;
function F(x:real):real;
begin
F:=2*x*x*x+2*x;
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    adapter,mode,x0,y0,i,px,py,err:integer;
    s:string;
begin
clrscr;
 DetectGraph(adapter,mode);
 InitGraph(adapter,mode,'D:\bp\bgi');
 err:=GraphResult;
 if err<>0 then
  begin
   writeln('Graficheskaya oshubka: ',GraphErrorMsg(err));
   readln;
   Halt(1);
  end;
Cleardevice;
x0:=0;
initgraph(x0,y0,'');
setbkcolor(15);{цвет фона}
setcolor(14);
rectangle(10,10,410,210);
setfillstyle(1,14);
floodfill(15,15,14);
SetViewPort(10,10,410,210,clipoff);
x0:=200;{центр окна}
y0:=100;
xn:=-5;xk:=5;{интервал по Х}
mx:=400/(xk-xn);{масштаб по Х}
my:=90/F(xk);{по У}
setcolor(8);{цвет линий}
line(-10,y0,getmaxX-10,y0);{оси}
line(x0,-10,X0,getmaxY-10);
for i:=1 to 20 do{максимальное количество засечек в одну сторону}
  begin
   line(x0-3,y0+round(100*i*my),x0+3,y0+round(100*i*my));{засечки на оси У}
   line(x0-3,y0-round(100*i*my),x0+3,y0-round(100*i*my));
   {подпись оси У}
   str(i*100,s);
   outtextXY(x0-35,y0+round(100*i*my),'-'+s);{соответственно засечкам}
   outtextXY(x0-35,y0-round(100*i*my),s);
   line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
   line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
   {подпись оси Х}
   str(i,s);
   outtextXY(x0+round(i*mx),y0+10,s);
   outtextXY(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-20,y0-10,'X');
outtextXY(x0+10,10,'Y');
setcolor(8);
outtext('Graph - 2*x*x*x+2*x');
{график}
x:=xn-10*mx;{от начала экрана}
dx:=0.001;
while y0-round(y*my)>-10 do{до выхода за экран вверху}
   begin
     x:=x+dx; {наращиваем х}
     px:=x0+round(x*mx); {изменение по оси Х}
     y:=F(x); {график в реальных координатах}
     py:=y0-round(y*my);{в экранных}
     putpixel(px,py,8);
   end;
readln;
CloseGraph;
end.
Добавлено через 3 минуты
Пожалуйста может кто помочь с 1-м и 2-м заданиями. Очень нужно!
0
 Аватар для SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
18.10.2011, 14:53  [ТС]
Насчет 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
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
program one;
uses crt;
var
   i,j,x,y,c,p: integer;
   ch:boolean;
   a: array [1..75] of integer;
function NewIndex (x1,y1:integer): integer;
var ind, res: integer;
begin
    res := 0;
    if (x1 mod 2 = 0) or (y1 mod 2 = 0) then
       begin
         for ind := 1 to x1 do begin
          if (ind mod 2 <> 0) and (ind <> x1) then res:= res + y div 2;
          if (ind mod 2 = 0) and (ind <> x1) then res := res + y;
          if (ind mod 2 <> 0) and (ind = x1) then res:= res + y1 div 2;
          if (ind mod 2 = 0) and (ind = x1) then res := res + y1;
         end;
   end;
   NewIndex := res;
end;
function PutTab (x1,y1,p:integer): integer;
begin
     PutTab := 0;
     if NewIndex(x1,y1) <> 0 then begin
                             a[NewIndex(x1,y1)] := p;
                             PutTab := p;
 
     end;
end;
function GetTab (x1,y1:integer): integer;
begin
     GetTab:= 0;
     if NewIndex(x1,y1) <> 0 then GetTab :=a[NewIndex(x1,y1)];
end;
begin
 
  clrscr;
  writeln ('Input size two-dimensional massiv: ');
  randomize;
  {$I-}
  repeat
  x:=0;
  y:=0;
  readln (x,y);
 
  if IOResult = 0 then begin
  if (x>0) and (y>0) and (x<=10) and (y<=10) then ch := true
 
                     else writeln ('Wrong input data');
  end else writeln ('Wrong Input data');
  until ch = true;
 
  ch := false;
  writeln ('Inner presentation:');
  for i := 1 to x do
     for j := 1 to y do begin
          if NewIndex(i,j) <> 0 then begin
          a[NewIndex(i,j)] := random(98)+1;
          write (a[NewIndex(i,j)], ' ');
          end;
      end;
  writeln;
  writeln ('Logical presentation:');
  for i := 1 to x do begin
           for j := 1 to y do begin
           if NewIndex (i,j) <> 0 then write (a[NewIndex(i,j)], ' ')
                                       else write ('0', ' ');
           end;
           writeln;
  end;
  writeln;
  repeat
  writeln ('1) Get element');
  writeln ('2) Exit');
  readln (c);
  if ioresult = 0 then begin
  case c of 1: begin
               repeat
               i:=0; j:=0;
 
               readln (i,j);
               if IOResult = 0 then begin
               if (i>0) and (j>0) and (i<=10) and (j<=10) then ch := true
                     else writeln ('Wrong input data');
               end else writeln ('Wrong input data');
               until ch = true;
 
               ch := false;
               writeln (GetTab(i,j));
               readln;
  end;
            2: halt(1);
            else begin writeln ('Wrong input data');
                       readln;
            end;
  end;
  end else writeln ('Wrong input data');
  until c = 4;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2011, 14:53
Помогаю со студенческими работами здесь

модуль Graph
Помогите построить график функции F(x). Вид фигуры и надписей на экране должен полностью соответствовать картинке. ...

Модуль Graph
немогу никак нарисовать график для exp(x)

Модуль Graph
Построить семейство разноцветных случайным образом вырезанных секторов окружностей.

Модуль GRAPH
Здравствуйте, есть нежен пример программы с помощью модуля GRAPH, т.е. чтобы пункты выделялись прямоугольником. Спасибо Добавлено...

модуль Graph
Построить график функций с обозначением осей координат. Y=a*cosx2


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через 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
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru