Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Перевод задачи из Pascal в C

Автор: Анютка 28.03.2006 21:51

Начала изучать С довольно недавно и, к сожалению, еще плоховато разбираюсь в этом языке программирования. Сегодня получила задание от препода написать задачку на Паскале и на С. С Паскалем у меня проблем нет, а вот с С потруднее sad.gif Ничего не получается sad.gif Помогите, пожалуйста доделать задачку в С.
Вот задача, написанная на Паскале:
Прикрепленный файл  RGZ1.PAS ( 301 байт ) Кол-во скачиваний: 588

А вот попытки перевести ее в С:


#include <conio.h>
#include <stdio.h>
#include <iostream.h>
void main()
{
float h,m,z;
cout <<"Введите точное время (часы, минуты, секунды)"<<endl;
cin >>h>>m>>z;
if ((h<=23) || (m<=59) || (z<=59))
{if (z>30) m=m+1;
{if (m=60)
{h=h+1; m=0;}
if (h=24) h=0;}}}
cout <<h<<" часов "<<m<<" минут "<<endl;}
}



1). Пользуйтесь тегами
2). Раздел задачи - олько для программ на языке Паскаль
3). Pascal пишется через c ... Исправил

Автор: klem4 28.03.2006 22:31

Переписать то можно, а смысл ?


until (h<=23) and (m<=59) and (s<=59);
if s>30 then
m:=m+1;
if m=60 then begin // <-- это условие никогда не выполнится

Ты для начала объясни что програма должна делать ....

ps тут с тегами проблема.

Автор: lapp 29.03.2006 7:33

Цитата(klem4 @ 28.03.2006 18:31) *

until (h<=23) and (m<=59) and (s<=59);
if s>30 then m:=m+1;
if m=60 then begin // <-- это условие никогда не выполнится

Почему не выполнится? Выполнится, если m=59, а s>30
Программа, по всей видимости, производит округление значения времени до минут.

Автор: klem4 29.03.2006 12:21

lapp, да, ты прав, я извиняюсь.

Тогда держи smile.gif)


# include <iostream.h>

int main (void){

int h, m, s;

do{

system("cls");

cout << "H = "; cin >> h;
cout << "M = "; cin >> m;
cout << "S = "; cin >> s;

} while ((h >= 24) || (m >= 60) || (s >= 60));

if (s > 30) m++; // вот тут не надо еще и секунды занулять ?
if (m == 60){
h++;
m = 0;
if (h == 24) h = 0;
};

cout << h << " hrs " << m << " mts " << s << " sec." << endl;
return 0;
}

Автор: Анютка 29.03.2006 19:47

Большое вам спасибо! Очень помогли! smile.gif