Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Denistrator
0 / 0 / 0
Регистрация: 17.06.2013
Сообщений: 12
#1

Из Pascal в C++ - C++

17.06.2013, 19:29. Просмотров 354. Ответов 3
Метки нет (Все метки)

Нужно с паскаля на C++ перевести вот это:
Pascal
1
2
3
4
5
6
7
8
9
10
11
var x, y:byte;
act:char;
begin
while act <> 'q' do begin
act:=readkey; 
if act='a' then begin plr:=chr(17); x:=x-1; end;
if act='d' then begin plr:=chr(16); x:=x+1; end;
if act='w' then begin plr:=chr(30); y:=y-1; end;
if act='s' then begin plr:=chr(31); y:=y+1; end;
gotoxy(x, y); write('*');
end; end.
Плз. помогите!

P.S. Для меня вся сложность в том что не могу найти аналог readkey в C++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 19:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из Pascal в C++ (C++):

Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET - в чем разница? - Pascal
Всем привет, решил изучать Паскаль, но на форуме увидел 4 его версии - Turbo Pascal, Pascal ABC, Free Pascal, PascalABC.NET и не понял, в...

Различия трансляторов Pascal ABC.Net и Turbo/Borland Pascal - Pascal
Пожалуйста, объясните различия между компиляторами Pascal ABC.Net и Turbo/Borland Pascal

Список слов распечатать в алфавитном порядке. В Turbo Pascal или Pascal ABC - Turbo Pascal
Дана непустая последовательность слов, в каждом из которых содержится от 1 до 6 заглавных латинских букв; соседние слова разделены запятой,...

Нужно перевести код с Pascal ABC на Turbo Pascal - рисование работающей мельницы - Turbo Pascal
Вот код, он должен рисовать работающею мельницу. uses graphABC,crt; type point=record x,y:integer; end; ...

Из множества выбрать три различные точки по условию -из Turbo Pascal во Free Pascal - Turbo Pascal
Даны 2 множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы круг ограниченный окружностью , проходящий...

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net? - PascalABC.NET
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode: integer; ErrCode: integer; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Denno
51 / 51 / 6
Регистрация: 21.10.2012
Сообщений: 190
Завершенные тесты: 3
17.06.2013, 19:38 #2
Цитата Сообщение от Denistrator Посмотреть сообщение
не могу найти аналог readkey в C++
C++
1
std::cin.get();
Denistrator
0 / 0 / 0
Регистрация: 17.06.2013
Сообщений: 12
17.06.2013, 19:53  [ТС] #3
Пока что я написал это:

C++
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h> 
#include <conio.h>
using namespace std;
 
void gotoxy(int xpos, int ypos)
    {
    COORD scrn;    
    HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
    scrn.X = xpos; scrn.Y = ypos;
    SetConsoleCursorPosition(hOuput,scrn);
    }   
int _tmain(int argc, _TCHAR* argv[])
{
    int x, y;
    char act;
    x=1; y=1;
    while (act!='q')
    {
    act=cin.get();
    if (act=='a'){x--;}
    if (act=='d'){x++;}
    if (act=='w'){y--;}
    if (act=='s'){y++;}
    gotoxy(x, y); cout<<"*";
    }
    getch();
return 0;
}
но все же так как надо не работает(просто выводит на экран нажатые символы)
я в C++ новичок(<недели) так что наверно вся прога не правильно написана...

Добавлено через 10 минут
C++
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h> 
#include <conio.h>
using namespace std;
 
void gotoxy(int xpos, int ypos)
    {
    COORD scrn;    
    HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
    scrn.X = xpos; scrn.Y = ypos;
    SetConsoleCursorPosition(hOuput,scrn);
    }   
int _tmain(int argc, _TCHAR* argv[])
{
    int x, y;
    char act;
    x=1; y=1;
    act=cin.get();
    while (act!='q')
    {
     switch(act)
     {
     case 'a': {x--;}
     case 'd': {x++;}
     case 'w': {y--;}
     case 's': {y++;}
     gotoxy(x, y); cout<<"*";
     }
    }
    getch();
return 0;
}
как бы v 0.1
Naudiz
14 / 12 / 1
Регистрация: 04.11.2011
Сообщений: 137
17.06.2013, 20:19 #4
Denistrator, после каждого case поставьте break;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2013, 20:19
Привет! Вот еще темы с ответами:

Необходимо перевести программу с Pascal ABC на free pascal - Free Pascal
var a, factorial:longint; const c:array of char= ('0','1'); var res:string; d:0..1; k, n, i:byte; begin ...

Переделайте, пожалуйста, программу из Turbo pascal в ABC pascal - Pascal ABC
Помогите, пожалуйста, перевести из PASCAL TURBO в PASCAL ABC Program ProgInt; Uses Crt, Graph; Var Punkt : Byte; Knopka :...

Нужен Turbo pascal или Free pascal на русском - Pascal
Нужен Turbo pascal или Free pascal на русском языке, есть такой или нет? По книге обучаюсь по Turbo pascal, а установлен pascalABC, в книге...

Перевести в код Pascal ABC из кода Pascal Delphi - Pascal ABC
Помогите перевести в код ABC а то с Delphi вообще не знаком. Задание было такое: Записать в файл последовательного доступа N...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.06.2013, 20:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru