IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Перевод задачи из Pascal в C, Наипростейшая задачка
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Анна

Репутация: -  0  +


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

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


#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 ... Исправил
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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


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

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

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

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(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
Программа, по всей видимости, производит округление значения времени до минут.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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;
}


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Анна

Репутация: -  0  +


Большое вам спасибо! Очень помогли! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 26.06.2017 13:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"