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

Переписать за меня программу с Pascal на С++ - C++

Восстановить пароль Регистрация
 
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
09.12.2011, 11:09     Переписать за меня программу с Pascal на С++ #1
Кто может первести код из Паскаля в си++?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses wincrt;
var
   x : array[1..20,1..40] of byte
   i,j,
   m,n : byte;
begin
   write('kolichestvo vagonov : ');readln(m);
   write('kolichestvo mest    : ');readln(n);
   writeln('zapolnite massiv : ');
   for i:=1 to m do
     for j:=1 to n do
       read(x[i,j]);
   write('Введите номера интересующих Вас вагона и места : ');readln(m,n);
   if x[m,n] = 0
      then
         write('bilet est`')
      else
         write('bilet prodan');
end.
Т.к. паскаль я не учил, то для меня это очень проблематично. Вот условие задачи, если кому-нибудь понадобится :
В поезде 18 вагонов, в каждом из которых 36 мест. Информация о проданных на поезд билетах хранится в двумерном массиве, номера строк которых соответствуют номерам вагонов, а номера столбцов - номерам мест.Если билет на то или иное место продан, то соответствующий элемент массива имеет знчение 1, в противном случае - 0. Составить программу, определяющую, имеются ли свободные места в том или ином вагоне поезда. Очень на вас рассчитываю.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <sstream>
int main()
{
    int x[1..20,1..40]
    int i, j, m, n;
    cout<<"kolichestvo vagonov : ";
    cin>>m;
    cout<<"kolichestvo mest :";
    cin>>n;
    cout>>"zapolnite massiv : ";
попытался сам, но сделал только до сих пор(((.

Добавлено через 12 минут
Цитата Сообщение от Вася1q Посмотреть сообщение
for i:=1 to m do for j:=1 to n do read(x[i,j]); write('Введите номера интересующих Вас вагона и места : ');readln(m,n); if x[m,n] = 0 then
в частности эти строки вызываю затруднение. Помогите мне с ними.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2011, 11:09     Переписать за меня программу с Pascal на С++
Посмотрите здесь:

Переписать за меня программу с C# на С++ C++
C++ Программу Pascal переписать под c++
Программу pascal переписать под c++ C++
C++ Программу pascal переписать под c++ условные операторы
C++ Программы pascal переписать под c++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DenCHS200
 Аватар для DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
09.12.2011, 11:24     Переписать за меня программу с Pascal на С++ #2
Когда будете вводить номера интересующего вагона, то в моём коде посмотрите, что проверяем номера места и вагона на -1 меньше, так как в отличие от паскаля в С++ элементы массива нумеруются с нуля, а так всё , как на паскале, но учтите, что листинг на паскале написан далеко не идеально.
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void main()
 
{ short x[20][40];
 
int i, j, m, n;
    cout<<"kolichestvo vagonov : "<<endl;
    cin>>m;
    cout<<"kolichestvo mest :"<<endl;
    cin>>n;
    cout<<"zapolnite massiv : "<<endl;
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            cin>>x[m][n];
    cout<<"VVedite nomer interesuushih vas vagonona i mesta:"<<endl;
    cin>>i>>j;
    if(x[i-1][j-1]==0)
        cout<<"Bilet est";
    else cout<<"Bilet prodan";
    getch();
}
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
09.12.2011, 14:08  [ТС]     Переписать за меня программу с Pascal на С++ #3
Я так понял моя программы недоработанная. Как бы ее улучшить?
DenCHS200
 Аватар для DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
09.12.2011, 14:47     Переписать за меня программу с Pascal на С++ #4
Можно , например, после узнавания свободности места сделать повторный запрос, например, предложить запрос на другое место, + самая большая неточность, то, что n и m можно ввести больше размерности массива[20][40], что вызовет ошибку(Доступ к несуществующему элементу массива).Здесь 2 пути доработки :либо сделать массив динамическим и размерность m,n задавать с клавиатуры, либо проверять, чтобы m<=20 , n<=40.Но это всё ,скорее, не то чтобы доработка программы(я немного погорячился), а создание защиты от неправильной работы.А так алгоритм у вас правильный
Вася1q
 Аватар для Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
09.12.2011, 17:06  [ТС]     Переписать за меня программу с Pascal на С++ #5
DenCHS200, я не могли бы вы помочь мне...я хочу чтобы все было нагляднее. Вместо "заполните массив", программа сама бы заполняла его (учитывая что номера вагонов перечисляются по-порядку) а вот занятые и свободные места я бы вписывал в ручную.
DenCHS200
 Аватар для DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
09.12.2011, 21:54     Переписать за меня программу с Pascal на С++ #6
Да, помогу. Чтобы программа сама заполняла массив, нужно заполнить его случайными числами.Для этого добавляем заголовочный файл
C++
1
#include <ctime>
Выполняем функцию для корректного назначения случайных чисел
C++
1
 srand(time(0));
и вместо ввода в массив значений
C++
1
cin>>x[m][n];
просто выполнить такой код
C++
1
x[m][n]=rand()%2;
Там вместо двойки поставьте такое число, которое может быть максимальным при заполнении случайных чисел, в моём примере с двойкой числа будут либо 0, либо 1, если с тройкой, то либо 0, либо 1, либо 2 и так далее.Так массив будет проинициализирован случайными числами.
Yandex
Объявления
09.12.2011, 21:54     Переписать за меня программу с Pascal на С++
Ответ Создать тему
Опции темы

Текущее время: 16:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru