С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 3

Не знаю как соединить программу с меню!

17.05.2011, 10:09. Показов 1317. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
program laba4;
uses crt; {подключаем модуль crt}
const nmax=20;
var a:array[1..nmax,1..nmax]of integer;
    n,i,j,sum,k,max,l:integer;
    p:longint;
begin
clrscr; {чищает экран и помещает курсор в
верхнем левом углу}
randomize;
repeat  {цикл с постусловием}
write('Vvedite razmernost matricy do ',nmax,' n= ');
readln(n);
until n in [1..nmax]; {цикл с постусловием}
Writeln('Matrica:');
for i:=1 to n do
   begin
     for j:=1 to n  do
       begin
        repeat
        a[i,j]:=random(10)-2;
        until a[i,j]<>0;
        write(a[i,j]:4);
       end;
     writeln;
   end;
for i:=1 to n do
 begin
  k:=0;
  for j:=1 to n do
  if a[i,j]<0 then k:=1;
  if k=0 then
   begin
    p:=1;
    for l:=1 to n do
    p:=p*a[i,l];
    writeln('Proizvedenie v stroke ',i,'=',p);
   end;
 end;
write('Press Enter...');
readln;
max:=a[n,1];
for l:=1 to 2*n-1 do{количество диагоналей}
  begin
    sum:=0;
    if l<n then {если брать и главную то if l<=n}
      begin
       for i:=n-l+1 to n do
       for j:=1 to l do
       if j=i-n+l then sum:=sum+a[i,j];
       writeln('summa ',l,'=',sum);
       if sum>max then max:=sum;
      end
    else if l>n then
      begin
       for i:=1 to 2*n-l do
       for j:=l-n+1 to n do
       if j=i+l-n then sum:=sum+a[i,j];
       writeln('summa ',l,'=',sum);
       if sum>max then max:=sum;
      end;
  end;
write('Максимальная сумма=',max);
readln
end.

и меню

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
program menu1;     
uses Crt;
const
     NORM=16*green+red; { цвет невыделеного пункта }
     SEL=16*green+red+blink;  { цвет выделенного пункта }
     N=3;
var
     menu:array[1..N] of string[12];{ названия пунктов меню }
     punkt:integer;  { номер выделенного пункта }
     ch:char;        { введенный символ }
     x,y:integer;    { координаты начала строки меню }
 
Procedure punkt1;
begin
     ClrScr;
     GoToXY(11, 12);
     write('Процедура 1 пока не реализована.');
     writeln('  Нажмите <Enter> для продолжения.');
     readln;
end;
 
Procedure punkt2;
begin
     ClrScr;
     GoToXY(11, 12);
     write('Процедура 2 пока не реализована.');
     writeln('  Нажмите <Enter> для продолжения.');
     readln;
end;
 
Procedure MenuToScr;{ вывод меню на экран }
var i:integer;
begin
     ClrScr;
     for i:=1 to N do
       begin
      GoToXY(x, y+i-1);
      write(menu[i]);
       end;
     TextAttr:=SEL;
     GoToXY(x,y+punkt-1);
     write(menu[punkt]);{ выделим строку меню }
     TextAttr:=NORM;
end;
 
begin                        { основная программа }
     menu[1]:=' Действие 1 ';
     menu[2]:=' Действие 2 ';
     menu[3]:=' Выход ';
     punkt:=1;
     x:=5;        y:=5;
     TextAttr:=NORM;
     MenuToScr;
     repeat
       ch:=ReadKey;
       if ch=char(0)
     then
       begin
           ch:=ReadKey;
           case ch of
            chr(80):{ стрелка вниз }
             if punkt<N then
               begin
                  GoToXY(x, y + punkt-1);
                  write(menu[punkt]);  {снять выделение}
                  punkt:=punkt+1;       { пункт ниже}
                  TextAttr:=SEl;
                  GoToXY(x, y + punkt-1);
                  write(menu[punkt]);   {выделить новый пункт}
                  TextAttr:=NORM;
               end; {if}
            chr(72):{ стрелка вверх }
             if punkt>1 then
               begin
                  GoToXY(x, y + punkt-1);
                  write(menu[punkt]);     {снять выделение}
                  punkt:=punkt-1;          { пункт выше}
                  TextAttr:=SEl;    {установить выделение текста}
                  GoToXY(x, y + punkt-1);
                  write(menu[punkt]);  {напечатать пункт меню}
                  TextAttr:=NORM; {установить нормальный текст}
               end; {if}
           end;  { case }
       end        {    = char(0) }
     else
       if ch=chr(13)      { нажата клавиша <Enter> }
        then
         begin
           case punkt of
         1 : punkt1;
         2 : punkt2;
         3 : ch:=chr(27);{ выход (27 - код клавиши Esc) }
           end;   {case}
           MenuToScr;
         end;    {   <>char(0) }
     until ch=chr(27);                 { 27 - код <Esc> }
end.
Сама программа:
Дана вещественная прямоугольная матрица. Определить:
1. произведение в тех строках, которые не содержат отрицательных элементов;
2. максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2011, 10:09
Ответы с готовыми решениями:

Как выпадающее меню соединить с таблицей БД?
Уважаемые пользователи этого форума,подскажите пожалуйста как можно содержимое с таблицы БД вставить в выпадающее меню,вот скрипт что нужно...

Не знаю как сделать дизайн в меню
Есть главное меню в котором есть подменю дизайна, в подменю есть на выбор стили главного меню,подменю и подподменю, в один стиль...

JTAG адаптер- не знаю куда соединить ножку...
хочу собрать JTAG ICE подскажите ,ПОЖАЛУЙСТА! НА его схеме --- http://iosyitistromyss.ru/img/AVR_kurs/JTAG/JTAG.GIF, представленной...

4
20 / 20 / 10
Регистрация: 16.05.2011
Сообщений: 161
17.05.2011, 10:57
Оформить саму программу в виде процедуры и добавить ее в меню разве не получится?
0
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 3
17.05.2011, 11:52  [ТС]
Как бы вам сказать! Я в программировании как таковом дуб-дубом! саму прогу друг подсказал как сделать! а меню из лекций взял!

Добавлено через 57 секунд
QuakeArena можете пример какой ни будь привести?
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
17.05.2011, 12:43
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
program menu1;
uses Crt;
const
     NORM=16*green+red; { öâåò íåâûäåëåíîãî ïóíêòà }
     SEL=16*green+red;  { öâåò âûäåëåííîãî ïóíêòà }
     N=5;
     nmax=20;
var
     menu:array[1..N] of string[12];{ íàçâàíèÿ ïóíêòîâ ìåíþ }
     punkt:integer;  { íîìåð âûäåëåííîãî ïóíêòà }
     ch:char;        { ââåäåííûé ñèìâîë }
     x,y:integer;    { êîîðäèíàòû íà÷àëà ñòðîêè ìåíþ }
 
     a:array[1..nmax,1..nmax]of integer;
     c,i,j,sum,k,max,l:integer;
     p:longint;
 
Procedure punkt1;
begin
     ClrScr;
     GoToXY(11, 12);
     repeat  {öèêë ñ ïîñòóñëîâèåì}
      write('Vvedite razmernost matricy do ',nmax,' c= ');
      readln(c);
     until n in [1..nmax]; {öèêë ñ ïîñòóñëîâèåì}
     for i:=1 to c do
      for j:=1 to c  do
        repeat
         a[i,j]:=random(10);
        until a[i,j]<>0;
     writeln('  Íàæìèòå <Enter> äëÿ ïðîäîëæåíèÿ.');
     readln;
end;
 
procedure punkt2;
begin
ClrScr;
 Writeln('Matrica:');
 for i:=1 to c do
     begin
      for j:=1 to c  do
        write(a[i,j]:4);
     writeln;
    end;
     writeln('  Íàæìèòå <Enter> äëÿ ïðîäîëæåíèÿ.');
     readln;
end;
 
Procedure punkt3;
begin
     ClrScr;
     for i:=1 to c do
     begin
     k:=0;
     for j:=1 to c do
     if a[i,j]<0 then k:=1;
     if k=0 then
     begin
     p:=1;
     for l:=1 to c do
     p:=p*a[i,l];
     GoToXY(11, 12+i);
     writeln('Proizvedenie v stroke ',i,'=',p);
    end;
  end;
     writeln('  Íàæìèòå <Enter> äëÿ ïðîäîëæåíèÿ.');
     readln;
end;
procedure punkt4;
begin
ClrScr;
max:=a[c,1];
for l:=1 to 2*c-1 do{êîëè÷åñòâî äèàãîíàëåé}
  begin
    sum:=0;
    if l<n then {åñëè áðàòü è ãëàâíóþ òî if l<=n}
      begin
       for i:=c-l+1 to c do
       for j:=1 to l do
       if j=i-c+l then sum:=sum+a[i,j];
       writeln('summa ',l,'=',sum);
       if sum>max then max:=sum;
      end
    else if l>c then
      begin
       for i:=1 to 2*c-l do
       for j:=l-c+1 to n do
       if j=i+l-c then sum:=sum+a[i,j];
       writeln('summa ',l,'=',sum);
       if sum>max then max:=sum;
      end;
  end;
write('Ìàêñèìàëüíàÿ ñóììà=',max);
writeln('  Íàæìèòå <Enter> äëÿ ïðîäîëæåíèÿ.');
readln;
end;
 
Procedure MenuToScr;{ âûâîä ìåíþ íà ýêðàí }
var i:integer;
begin
     ClrScr;
     for i:=1 to N do
       begin
          GoToXY(x, y+i-1);
          write(menu[i]);
       end;
     TextAttr:=SEL;
     GoToXY(x,y+punkt-1);
     write(menu[punkt]);{ âûäåëèì ñòðîêó ìåíþ }
     TextAttr:=NORM;
end;
 
begin                        { îñíîâíàÿ ïðîãðàììà }
     menu[1]:=' Äåéñòâèå 1 ';
     menu[2]:=' Äåéñòâèå 2 ';
     menu[3]:=' Äåéñòâèå 3 ';
     menu[4]:=' Äåéñòâèå 4 ';
     menu[5]:=' Âûõîä ';
     punkt:=1;
     x:=5;        y:=5;
     TextAttr:=NORM;
     MenuToScr;
     repeat
       ch:=ReadKey;
       if ch=char(0)
         then
           begin
               ch:=ReadKey;
               case ch of
                    chr(80):{ ñòðåëêà âíèç }
                         if punkt<N then
                           begin
                              GoToXY(x, y + punkt-1);
                              write(menu[punkt]);  {ñíÿòü âûäåëåíèå}
                              punkt:=punkt+1;       { ïóíêò íèæå}
                              TextAttr:=SEl;
                              GoToXY(x, y + punkt-1);
                              write(menu[punkt]);   {âûäåëèòü íîâûé ïóíêò}
                              TextAttr:=NORM;
                           end; {if}
                    chr(72):{ ñòðåëêà ââåðõ }
                         if punkt>1 then
                           begin
                              GoToXY(x, y + punkt-1);
                              write(menu[punkt]);     {ñíÿòü âûäåëåíèå}
                              punkt:=punkt-1;          { ïóíêò âûøå}
                              TextAttr:=SEl;    {óñòàíîâèòü âûäåëåíèå òåêñòà}
                              GoToXY(x, y + punkt-1);
                              write(menu[punkt]);  {íàïå÷àòàòü ïóíêò ìåíþ}
                              TextAttr:=NORM; {óñòàíîâèòü íîðìàëüíûé òåêñò}
                           end; {if}
               end;  { case }
           end        {    = char(0) }
         else
           if ch=chr(13)      { íàæàòà êëàâèøà <Enter> }
            then
             begin
               case punkt of
                 1 : punkt1;
                 2 : punkt2;
                 3 : punkt3;
                 4 : punkt4;
                 5 : ch:=chr(27);{ âûõîä (27 - êîä êëàâèøè Esc) }
               end;   {case}
               MenuToScr;
             end;    {   <>char(0) }
     until ch=chr(27);                 { 27 - êîä <Esc> }
end.
вот держи слил тебе программку.Выравнивание,подписи и всё что там по мелочи надо тебе уж сам доделай.Да и это без передачи параметров в процедуры я объединил,но думаю тебе и так сойдёт.
0
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 3
17.05.2011, 14:46  [ТС]
Всем большое спасибо! Работает и то хорошо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.05.2011, 14:46
Помогаю со студенческими работами здесь

Я новичек,не знаю как исправить ошибку в меню
Всем привет.Меня зовут Влад.Я только что зарегистрировался на этом форуме.Я новичек и в сайто-верстке и на этом форуме) У меня при...

Интересное решение для wordpress (несколько меню) не могу реализовать но знаю как
столкнулся с проблемой что на сайт (wp) нужно поставить несколько меню такая функция как вы знаете в wp отсуцтвует есть идея просто...

Как соединить в одну программу?
Как соединить в одну программу? const L=80; Var T: Array Of String; i, N: Integer; Begin ...

Прикрепление. Как соединить модуль и программу?
как соединить модуль и программу?:umnik:

Как соединить программу с сайтом Delphi 7
Допустим..: Я хочу при вводе логина и пароля чтоб программа проверяла валидность через сайт... у меня есть идея как это сделать,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru