HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 19.11.2009, 15:03
Badanga
Новичок
Регистрация: 21.12.2006
Сообщений: 5
Провел на форуме:
33140

Репутация: 0
По умолчанию

спасайте..
написал программу на С++ которая высчитывает дни недели.
стал писать защиту от дураков, но доделать её немогу.
нужно сделать чтоб программа учитывала весокосные года и при ошибке писала что вы ошиблись.
идейки есть( но к сажалению языка незнаю( ибо в универе прошлом учил паскаль(
завтра сдавать а я низнаю как сделать(

PHP код:
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <conio.h>
//_______________________Руссификатор консоли_______________________________________


char bufRus[256];
char*Rus(const char*text)
    {
    
CharToOem(textbufRus);
    return 
bufRus;
    }

//_________________Программа___________________________
void main ()
{
    
int daymonthyear;
    
int c,y;
    
int m;
    
int d;

    
printf(Rus("Определение дня недели по дате\n"));
    
printf(Rus("ВВедите дату: день месяц год\n"));
    
printf(Rus("Например: 5  12  2001\n"));


    
printf(Rus("ВВедите: Месяц ->\n"));
        
scanf("%i", &month);
//__________________________Защита________________________________
while (month>12)
{
if (
month>12)
{
printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &month); }
else break;
}
//__________________________________________________________

    
printf(Rus("ВВедите:  День ->\n"));
        
scanf("%i", &day);

 
//__________________________Защита________________________________
while (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if (
day>31)
{
printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}

while (
month==2)
{
if (
day>29)
{
printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}

while (
month==4||month==6||month==9||month==11)
{
if (
day>30)
{
printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;

}
//__________________________________________________________
        
printf(Rus("ВВедите:   Год ->\n"));
    
scanf("%i", &year);

     
        if (
month==1||month==2)
                
year--;
        
m=month 2;

        if (
m<=0m+=12;

    
c=year/100;
    
y=year-c*100;
    
d=(day+(13*m-1)/5+y+y/4+c/4-2*c+777)%7;

    switch (
d)
    {
    
    case 
1printf(Rus("Понедельник\n")); break;
    case 
2printf(Rus("Вторник\n")); break;
    case 
3printf(Rus("Среда\n")); break;
    case 
4printf(Rus("Четверг\n")); break;
    case 
5printf(Rus("Пятница\n")); break;
    case 
6printf(Rus("Суббота\n")); break;
    case 
0printf(Rus("Воскресенье\n")); break;
        }
       
  

getch ();


 
Ответить с цитированием

  #2  
Старый 17.11.2009, 18:10
Syntaxys
Познающий
Регистрация: 02.09.2007
Сообщений: 67
Провел на форуме:
521298

Репутация: 20
По умолчанию

Отсев.

Удалить в заданном массиве х(н) "лишные" элементы
кроме первого так, чтобы оставшиеся образовали
возрастающую последовательность (за один просмотр массива).

Сделал все, кроме упорядочивания. Подскажите как массив упорядочить за один просмотр массива или реализовать удаление и сортировку за один просмотр.

Код:
Program sdvig;
type
    Mas=array [0..99] of integer;
Procedure vvod(Var m:Mas; Var kolvo:integer);
          Var i:integer;
              begin
                   repeat
                         write('Vvedite kolvo elementov:');
                         readln(kolvo);
                   until kolvo>0;
                   for i:=1 to kolvo do
                       begin
                            write('element:');
                            read(m[i]);
                       end;
              end;
Procedure udalenie(Var m:Mas; Var element:integer;Var kolvo:integer);
Var i:integer;
   Begin
        for i:=element to kolvo do
            Begin
            m[i]:=m[i+1];
            End;
            kolvo:=kolvo-1; //не отображать нуль-элемент массива
            
   End;
var i,m,kolvo,element:integer;
    accept:string;
    n:mas;
Begin
     vvod(n,kolvo);
     repeat
     writeln('Vvedite Nomer elementa');
     readln(element);
     udalenie(n,element,kolvo);
       writeln('Massiv:');
       for i:=1 to kolvo do
           write(n[i],' ');
     writeln(' ');
     writeln('Udalit esho 1 element massiva?');
     writeln('Yes/no?');
     repeat
           read(accept);
     until (accept='no') or (accept='yes') ;
     until accept = 'no';
end.
 
Ответить с цитированием

  #3  
Старый 17.11.2009, 19:56
velvetdust
Новичок
Регистрация: 08.11.2008
Сообщений: 9
Провел на форуме:
28743

Репутация: -5
По умолчанию

Такая ситуация, срочно пришлось переводиться в универе в другую группу посреди семестра - и нужно срочно сдать лабу на с++, а я изучал си чистый, поэтому прошу вашей помощи. Задание такое:

Цитата:
Написать программу учета заявок на обмен квартир и поиска вариантов обмена.

Каждая заявка содержит фамилию и инициалы заявителя, а также сведения о двух квартирах: требуемой (искомой) и имеющейся. Сведения о каждой квартире содержат: количество комнат, площадь, этаж, район.

Программа должна обеспечивать выбор с помощью меню и выполнение следующих функций:

1) ввод заявки на обмен;
2) поиск в картотеке подходящего варианта: при совпадении требований и предложений по количеству комнат и этажности и различии по показателю «площадь» в пределах 10% выводится соответствующая карточка и удаляется из списка, в противном случае поступившая заявка включается в картотеку;
3) вывод всей картотеки.

Хранение данных организовать с применением контейнерного класса set.
Пример выполнения лабы есть в архиве

Пишите на почту [velvetdust(собака)yandex.ru], за сколько готовы сделать, я вам отвечу.

P.S. Ребята говорят, что препод особенно любит блок-схемы, так что вот их важно сделать четко, как в примере...
высокая закомментированность кода приветствуется)
 
Ответить с цитированием

  #4  
Старый 18.11.2009, 13:41
bl00m
Новичок
Регистрация: 16.05.2009
Сообщений: 12
Провел на форуме:
43574

Репутация: 0
По умолчанию

помогите, пожалуйста.
нужно написать cgi приложение на С++, которое делает следующее:
В каждом слове текста k-ю букву заменить заданным символом. Если k больше длины слова, корректировку не выполнять.
Заранее большое спасибо!
 
Ответить с цитированием

  #5  
Старый 19.11.2009, 17:57
Roston
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме:
2866942

Репутация: 350
По умолчанию

Ну например
Код:
int god;
if (god%4==0)
printf("Год высокосный");
походу так
Дальше спихнуть в свой код сам думаю сможеш=)
 
Ответить с цитированием

  #6  
Старый 19.11.2009, 18:06
warkk
Участник форума
Регистрация: 20.02.2009
Сообщений: 183
Провел на форуме:
719582

Репутация: 50
По умолчанию

Задача на Паскале: ........, Если масисив не упорядочен, то определить длину упорядоченной часта массива.
я делаю так
Код:
t:=0;
        for i:=0 to n do
            begin
                 if m[i]<m[i+1] then k:=k+1
                 else
                     begin
                          if t<k then
                             begin
                                  t:=k;
                                  k:=1;
                             end
И если масив состоит из 12123123451
Выведет 5, т.к. это самая длинная упорядочена часть масива.
Но если 12123123456
То выведет 3, т.е. оно у меня не правильно считает, потому что не выполняется условие f m[i]<m[i+1]
Как сделать что бы нормально считало?

Последний раз редактировалось warkk; 19.11.2009 в 20:29..
 
Ответить с цитированием

  #7  
Старый 19.11.2009, 20:38
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


По умолчанию

Цитата:
Сообщение от warkk  
Задача на Паскале: ........, Если масисив не упорядочен, то определить длину упорядоченной часта массива.
я делаю так
Код:
t:=0;
        for i:=0 to n do
            begin
                 if m[i]<m[i+1] then k:=k+1
                 else
                     begin
                          if t<k then
                             begin
                                  t:=k;
                                  k:=1;
                             end
И если масив состоит из 12123123451
Выведет 5, т.к. это самая длинная упорядочена часть масива.
Но если 12123123456
То выведет 3, т.е. оно у меня не правильно считает, потому что не выполняется условие f m[i]<m[i+1]
Как сделать что бы нормально считало?


Цитата:
i:=2;
while (mas[i-1] <= mas[i] )and(i<=masLength) do
inc(i);
if i = 2 then write('dlina uporyad 1')
else write('dlina uporyad 1',i)
я бы делал примерно так.

 
Ответить с цитированием

  #8  
Старый 19.11.2009, 18:09
Roston
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме:
2866942

Репутация: 350
По умолчанию

Смотри. у тебя переменная t:=0
В условии if t>k then
begin
t:=k;
k:=1;
end
она всё время меньше k будет
 
Ответить с цитированием

  #9  
Старый 19.11.2009, 18:12
warkk
Участник форума
Регистрация: 20.02.2009
Сообщений: 183
Провел на форуме:
719582

Репутация: 50
По умолчанию

Но ведь во второй раз она может быть и больше k. Просто мне нужно самую длинную упорядоченную часть масива. Вдруг эта часть будет меньше предыдущей упорядоченной части.
 
Ответить с цитированием

  #10  
Старый 19.11.2009, 18:15
Roston
Постоянный
Регистрация: 31.07.2008
Сообщений: 370
Провел на форуме:
2866942

Репутация: 350
По умолчанию

Ты меня конешно извини, но я упор не вижу что бы твоя перемення t где нибудь увеличивалася
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.