Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
9 / 9 / 13
Регистрация: 23.02.2014
Сообщений: 37
1

После того, как выполнится процедура d, курсор переместить на первую позицию первой строки

05.03.2014, 14:15. Показов 2319. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть программа. Причем работающая.=)
Здесь есть цикл
Pascal
1
2
3
4
5
6
while not eof(f) do
begin
inc(g);
readln(f,q);
d(q);
end;
Надо, чтобы после того, как выполнится процедура d, курсор переместился на первую позицию первой строки. То есть чтобы при повторном использовании функции текст печатался снова в начале(с первой строки)
Вот вся программа.
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
uses graphabc;
 
var f:text;
q:string;
oh:integer;
a:array[1..20] of integer;
g:integer;
pr:real;
//==============================================
procedure d2(s:string; o,k:integer);
var h:string;
i,j:integer;
begin
writeln(s);
for i:=1 to k do
begin
readln(f,h);
writeln(h);
end;
readln(j);
if (j=o) then 
begin
setfontcolor(clgreen);
writeln('Правильно');
a[g]:=1;
end
else
begin
setfontcolor(clred);
writeln('Неправильно');
inc(oh);
a[g]:=0;
end;
setfontcolor(clblack);
writeln('Нажмите Enter для продолжения...');
readln;
end;
//=============================================
procedure d(s:string);
var o,err,k:integer;
g:string;
begin
g:=copy(s,length(s),1);
val(g,k,err);
delete(s,length(s),1);
g:=copy(s,length(s),1);
val(g,o,err);
delete(s,length(s),1);
d2(s,o,k);
end;
//=================================================
begin
oh:=0;
g:=0;
assign(f,'v.txt');
reset(f);
while not eof(f) do
begin
inc(g);
readln(f,q);
d(q);
end;
close(f);
setpencolor(clwhite);
setbrushcolor(clwhite);
rectangle(0,0,1000,1000);
pr:=((20-oh)/20)*100;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2014, 14:15
Ответы с готовыми решениями:

Текстовые файлы: в первую строку вставить первую гласную из второй строки, после каждой согласной в первой
1-в первую строку вставить первую гласную из второй строки, после каждой согласной в первой (строки...

Все вхождения данного символа необходимо переместить на первую позицию
пожалуйста, помогите написать текст програмы чтобы все вхождения данного символа необходимо...

Как в ТMеmо поставить курсор в определенную позицию строки?
Ребят, как в Тмемо поставить курсор посередине строки, я хочу чтобы выводилась задача, а после нее...

Курсор в тексбоксе перемещается на начальную позицию после каждого нажатия
Привет. У есть много текстбоксов и все они забиндиты на разные свойства с режимом в две стороны...

10
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.03.2014, 15:19 2
Лучший ответ Сообщение было отмечено Francleene как решение

Решение

Цитата Сообщение от Francleene Посмотреть сообщение
Причем работающая.=)
Вот чего не мог добиться, так это ее работы.
1
9 / 9 / 13
Регистрация: 23.02.2014
Сообщений: 37
05.03.2014, 15:51  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
Вот чего не мог добиться, так это ее работы.
Там подключается файл 'v.txt'
Без этого файла программа не работает.
Вот пример содержимого этого файла
Кликните здесь для просмотра всего текста
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.
Какой ответ правильный?12
1)Правильный;
2)Неправильный.

З,Ы, Жду вашу помощь.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.03.2014, 16:23 4
Лучший ответ Сообщение было отмечено Francleene как решение

Решение

Не понял суть программы, что нужно выводить, исправь сам
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
procedure d2(s:string; o,k:integer);
var h:string;
i,j:integer;
begin
textout(0,0,s);
for i:=1 to k do
begin
readln(f,h);
textout(0,20,h);
end;
readln(j);
if (j=o) then
begin
setfontcolor(clgreen);
textout(0,40,'Правильно');
a[g]:=1;
end
else
begin
setfontcolor(clred);
textout(0,40,'Неправильно');
inc(oh);
a[g]:=0;
end;
setfontcolor(clblack);
textout(0,60,'Нажмите Enter для продолжения...');
readln;
end;
1
9 / 9 / 13
Регистрация: 23.02.2014
Сообщений: 37
05.03.2014, 17:21  [ТС] 5
Цитата Сообщение от Puporev Посмотреть сообщение
Не понял суть программы, что нужно выводить, исправь сам
Спасибо большое!!! Это то, что нужно!!!

Добавлено через 10 минут
Puporev, возникла одна загвоздка. Как перевести текст строки на новую строку (автоперенос)? Если при Writeln текст сам переходит на новую строку, то при textout - нет. Подскажите, как исправить.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.03.2014, 17:29 6
Например выводить в цикле.
Pascal
1
2
for i:=1 to 2 do
textout(10,i*20,'s[i])  ;
а никакого автоперевода нет, прямое указание места вывода.
1
9 / 9 / 13
Регистрация: 23.02.2014
Сообщений: 37
05.03.2014, 17:53  [ТС] 7
Вы меня неправильно поняли. Когда строка очень длинная происходит вот что:
После того, как выполнится процедура d, курсор переместить на первую позицию первой строки
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.03.2014, 17:59 8
Автоперевода в графике нет, если такое бывает, нужно проверять длину строки, разбивать ее на части и выводить с новой строки, увеличивая координату Y на 20 при нормальном размере шрифта
1
9 / 9 / 13
Регистрация: 23.02.2014
Сообщений: 37
05.03.2014, 18:09  [ТС] 9
Эт как нету?
Вот: (если использовать writeln).
Мне хотелось бы узнать есть что-то типа clrscr, только в графике. Чтобы стирало весь написанный текст и возвращало курсор в начальную позицию.
После того, как выполнится процедура d, курсор переместить на первую позицию первой строки


Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
если такое бывает, нужно проверять длину строки, разбивать ее на части и выводить с новой строки, увеличивая координату Y на 20 при нормальном размере шрифта
Только так? Очень жалко... =(
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
05.03.2014, 18:12 10
Цитата Сообщение от Francleene Посмотреть сообщение
если использовать writeln)
Да не используют его в графике, так вводит и выводит в окошечке внизу. Это в простом АВС при совмещении модулей GraphABC и Crt вроде так можно
1
9 / 9 / 13
Регистрация: 23.02.2014
Сообщений: 37
06.03.2014, 09:25  [ТС] 11
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
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
uses
    graphabc;
 
var
    f: text;
    q, b2, b, z, bx, bx1: string;
    oh: integer;
    a: array[1..100] of integer;
    g, t, i: integer;
    pr, b1: real;
//==============================================
procedure d2(s: string; o, k: integer);
var
    h: string;
    i, j, t, n, x: integer;
begin
    t := 1;
    x := 1;
    while length(s) <> 0 do
    begin
        textout(x * 8, t, s[1]);
        delete(s, 1, 1);
        inc(x);
        if x >= 79 then 
        begin
            x := 1;
            inc(t, 20);
        end;
    end;
    for i := 1 to k do
    begin
        inc(t, 20);
        readln(f, h);
        x := 1;
        while length(h) <> 0 do
        begin
            textout(x * 8, t, h[1]);
            delete(h, 1, 1);
            inc(x);
            if x >= 79 then 
            begin
                x := 1;
                inc(t, 20);
            end;
        end;
    end;
    inc(t, 20);
    readln(j);
    if (j = o) then
    begin
        setfontcolor(clgreen);
        textout(8, t, 'Правильно');
        a[g] := 1;
    end
    else
    begin
        setfontcolor(clred);
        textout(8, t, 'Неправильно');
        inc(oh);
        a[g] := 0;
    end;
    inc(t, 20);
    setfontcolor(clblack);
    textout(8, t, 'Нажмите Enter для продолжения...');
    readln;
end;
//=============================================
procedure d(s: string);
var
    o, err, k: integer;
    g: string;
begin
    g := copy(s, length(s), 1);
    val(g, k, err);
    delete(s, length(s), 1);
    g := copy(s, length(s), 1);
    val(g, o, err);
    delete(s, length(s), 1);
    d2(s, o, k);
end;
//=================================================
begin
    SetWindowTitle('Тестерующая программа');
    SetWindowIsFixedSize(true);
    SetWindowWidth(640); 
    SetWindowHeight(480);
    CenterWindow;
    setfontname('DejaVu Sans Mono');
    oh := 0;
    g := 0;
    assign(f, 'v.txt');
    reset(f);
    setpencolor(clwhite);
    setbrushcolor(clwhite);
    while not eof(f) do
    begin
        rectangle(0, 0, 1000, 1000);
        inc(g);
        readln(f, q);
        d(q);
    end;
    close(f);
    setpencolor(clwhite);
    setbrushcolor(clwhite);
    rectangle(0, 0, 1000, 1000);
    pr := ((20 - oh) / 20) * 100;
    b1 := round(pr * 100) / 100;
    str(b1, b2);
    b := 'Вы ответили правильно на ' + b2 + ' процентов вопросов';
    textout(8, 1, b);
    t := 21;
    for i := 1 to 20 do
    begin
        inc(t, 20);
        if a[i] = 0 then
        begin
            str(i, bx1);
            bx := bx1 + ') Неправильно';
            setfontcolor(clred);
            textout(8, t, bx);
        end
        else
        begin
            str(i, bx1);
            bx := bx1 + ') Правильно';
            setfontcolor(clgreen);
            textout(8, t, bx);
        end;
    end;
    
end.
0
06.03.2014, 09:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2014, 09:25
Помогаю со студенческими работами здесь

Вставить первую строку в заданную позицию второй строки
Нужно написать программу которая вставляет первую строку в заданную позицию второй строки....

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

После активации листа курсор автоматически установить на первую незащищенную ячейку
Доброго времени суток ! Вопрос такого плана: есть листы с включеной защитой, на листах ячейки,...

Как правильно переместить позицию в потоке?
Почему выводится на консоль 52, а не цифра 4? #include &lt;iostream&gt; #include &lt;stdio.h&gt; using...

Как переместить позицию виджета в QtCreator?
В QC (Qt Designer) есть лейаут в нем 3 виджета. Как изменить порядок этих виджетов? Допустим, как в...

После завершения создания таблицы курсор оказывается в её первой ячейке
Монстры VBA, помогите! Из VB создается документ Word, создается таблица, из Recordset'a в неё...


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

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