|
|
перевести из Pascal в C++
Помогите, пожалуйста, перевести из Pascal в C++
Прошлую ночь решала задачи в Паскале, решила, сегодня это же нужно в С++. Тут я вообще ничего не понимаю
Вот задачи! Буду благодарна! (Хоть парочку, сама то и не одной не сделала в С++)
Код:
Program nastya;
uses crt;
var A,B: integer;
C:real;
begin
write('Число А: '); readln(A);
write('Число B: '); readln(B);
while B<>0 do begin
C:=A/B;
writeln ©;
readln
end;
while B=0 do
writeln ('Ошибка');
readln
end.
Код:
Program nastya;
uses crt;
var A:integer;
begin
write('Введите число от 0 до 4: '); readln(A);
case A of
0 : writeln('Ноль');
1 : writeln('Один');
2 : writeln('Два');
3 : writeln('Три');
4 : writeln('Четыре');
end;
while A<0 do
writeln ('Ошибка');
readln;
while A>4 do
writeln ('Ошибка');
readln
end.
Код:
Program stepen;
uses crt;
var A,B:real;
N:integer;
begin
write('Введите число A: '); readln(A);
write('Введите степень N(целое положительное число): '); readln(N);
B:=Exp(Ln(A)*N);
writeln(B);
readln
end.
Код:
Program massiv;
uses crt;
const M=10;
N=10;
var
matrix:array[1..M,1..N] of integer;
k, i, j, p, sum: longint;
begin
p:=1;
write('Введите число k: '); readln(k);
for i:= 1 to N do
begin
for j:= 1 to M do
begin
matrix[i,j]:=random(10);
write(matrix[i,j]:5);
if j = k then begin inc(sum, matrix[i,j]); p := p * matrix[i,j]; end;
end;
writeln;
end;
writeln;
writeln('Произведение ',k,' столбца : ',p);
end.
|
Третья:
Код:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float A,B;
int N;
cout << "Введите число A: ";
cin >> A;
cout << "Введите степень N(целое положительное число): ";
cin >> N;
B = exp(log(A) * N);
cout << B << endl;
return 0;
}
Четвертая:
Код:
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
int main()
{
const int M = 10, N = 10;
srand(time(NULL));
int matrix[M][N];
long k, i, j, p, sum;
p = 1;
cout << "Введите число k: ";
cin >> k;
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
matrix[i][j] = rand() % 10;
cout << setw(5) << matrix[i][j];
if (j + 1 == k)
{
sum += matrix[i][j];
p *= matrix[i][j];
}
}
cout << endl;
}
cout << endl << "Произведение " << k << " столбца : " << p << endl;
return 0;
}
У вас в четвертой задаче допущен недочет: функция random будет при каждом запуске выдавать одни и те же числа. Разберитесь что такое randomize и для чего оно нужно.
В первых двух задачах бесконечные циклы. Исправьте на Паскале, тогда и с переводом поможем.
|
Спасибо Вам! очень помогли! :) Учту все Ваши комментарии)))))))))))
|
Вторая.
Немного не уверен в правильности перевода readln
И ещё почему циклы проверки введённых значений у вас какие-то странные? У вас при любом числе кроме нуля будет ошибка. И лучше два while соединить в один через логическое И, либо сделать условие (A != 0) // А не равно нулю
Код:
#include <iostream>
using namespace std;
int main()
{
int A;
cout << "Введите число от 0 до 4: " << endl;
cin >> A;
switch(A){
case 0:
cout << "Ноль" << endl;
break;
case 1:
cout << "Один" << endl;
break;
case 2:
cout << "Два" << endl;
break;
case 3:
cout << "Три" << endl;
break;
case 4:
cout << "Четыре" << endl;
break;
default:
cout << "Ошибка ввода" << endl;
break;
}
while(A < 0){
cout << "Ошибка" << endl;
cin >> A;
}
while(A > 0){
cout << "Ошибка" << endl;
cin >> A;
}
cin >> A;
return 0;
}
|
Спасибо. поняла где ошибка, А должно быть больше 4х. )))))))))))))))))))))))))))))))))
while(A > 4)
Еще раз спасибо!!!!!
а в первой я так и не поняла где ошибка. все работает. проверяла)))
Единственное тут программа выдала символ на сочетание букв
Код:
while B<>0 do begin
C:=A/B;
writeln ©;
readln
а должно быть
Код:
while B<>0 do begin
C:=A/B;
writeln (С);
readln
|
Цитата:
Цитата Ластик
Единственное тут программа выдала символ на сочетание букв »
|
А я гадал-гадал, что это за конструкция такая...
Код в ворде набираете?
|
Цитата:
Цитата Ластик
а в первой я так и не поняла где ошибка. все работает. »
|
Формулировку задачи напишите. Может и правда все правильно, но очень в этом сомневаюсь.
Цитата:
Цитата Ластик
Код:
while B<>0 do begin
C:=A/B;
writeln (С);
readln »
|
Мне одному кажется, что в теле этого цикла не меняется B и, соответственно, цикл является бесконечным? То же самое могу спросить про все циклы while в первых двух задачах. И еще не понятно зачем использовать while там, где логичнее if?
|
Вот задание на 1 задачу.
Введите 2 числа, А и В. Если В не равно 0, то А разделить на В, иначе выдать "Ошибка"
Drongo, Я просто скопировала для распечатки в ворд, и от туда сюда скопировала, вот и получился символ :)
torauma, я делала с if, но что то не получилось. Нашла похожую задачу в интернете, сделала по аналогии. Проверила - работает :) Вот такой из меня программист.
Вот задание на 1 задачу.
Введите 2 числа, А и В. Если В не равно 0, то А разделить на В, иначе выдать "Ошибка"
|
Вот не верю что эта программа нормально завершилась.
Цитата:
Цитата Ластик
я делала с if, но что то не получилось. »
|
Разбираться нужно почему не получилось. Условный оператор - одна из самых простых и часто используемых конструкций.
|
Код:
Program nastya;
uses crt;
var A,B: integer;
C:real;
begin
write('Число А: '); readln(A);
write('Число B: '); readln(B);
if B<>0 then
begin
C:=A/B;
writeln (C);
readln
end
else B=0
writeln ('Ошибка');
readln
end.
Программы нет, проверить не могу. Такой вид будет?)
|
Такой, если тоже не ошибаюсь :) Забыл уже всё :)
Код:
Program nastya;
uses crt;
var A,B: integer;
C:real;
begin
write('Число А: '); readln(A);
write('Число B: '); readln(B);
if B<>0 then
begin
C:=A/B;
writeln (C);
readln
else B=0
writeln ('Ошибка');
readln
end;
end.
|
Вот подправил:
Код:
Program nastya;
uses crt;
var A,B: integer;
C:real;
begin
write('Число А: '); readln(A);
write('Число B: '); readln(B);
if B<>0 then
begin
C:=A/B;
writeln (C);
end
else
begin
writeln ('Ошибка');
end;
readln; //лучше использовать readkey
end.
Обратите внимание, что readln останавливает программу до тех пор, пока не будет нажата клавиша "ввод", а readkey отреагирует на нажатие любой клавиши.
Вариант с проверкой в цикле:
Код:
Program nastya;
uses crt;
var A,B: integer;
C:real;
begin
write('Число А: '); readln(A);
write('Число B: '); readln(B);
while B = 0 do
begin
writeln ('Ошибка');
write('Число B: '); readln(B);
end;
C:=A/B;
writeln (C);
readkey;
end.
Тепрь на C++:
if:
Код:
#include <iostream>
using namespace std;
int main()
{
int A,B;
float C;
cout << "Число A: ";
cin >> A;
cout << "Число B: ";
cin >> B;
if (B != 0)
{
C = A / B;
cout << C << endl;
}
else
{
cout << "Ошибка" << endl;
}
return 0;
}
while:
Код:
#include <iostream>
using namespace std;
int main()
{
int A,B;
float C;
cout << "Число A: ";
cin >> A;
cout << "Число B: ";
cin >> B;
while (B == 0)
{
cout << "Ошибка" << endl;
cout << "Число B: ";
cin >> B;
}
C = A / B;
cout << C << endl;
return 0;
}
|
Ребята, вы такие молодцы! Спасибо вам большое!!!!!!!!!! Ответили быстро и помогли!
:up: Будущая пятерка ваша!)))))))))))))))))))
|
Время: 22:41.
© OSzone.net 2001-