Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 19:21   #1
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
Вопрос В Паскале немного доделать код

Всем добрый вечер!
У меня такая просьба.Вот дан мой код,он сделан,компилирует и выдаёт ран,в ране всё выдаёт нужное по заданию,Но,в одном месте он ошибается.А имеено когда надо узнать день недели.Иногда попадает в нужный день,но чаще нет.
Т.е. там по заданию-ввожу год,месяц,день и затем он должен мне выдать день недели-а в этом месте ошибается.

если что,вот условие задания-перевела как смогла,по русскки оно звучит немного коряво....

Создать функцию с константным массивом, где содержатся названия дней недели.Полученное число(от 1 до 7) функция превращает в текстовую форму.Создать программу,которая из введённых трёх чисел(год,месяц,дата) образует на выходе на экране в текстовой форме,например "2010.3.1-сегодня понедельник"

Код:
program  masivs;  {4.uzd}
uses crt;
const nedelja : array[1..7] of string = ('pirmdiena','otrdiena','treshdiena','ceturtdiena','piektdiena','sestdiena','svetdiena');
      N=7;
type mas=array[1..N] of integer;
var  x:mas;
     G,M,D:integer;
     NDN:integer;     {Nedeljas Dienas Numurs}
     eksistejosha_diena:boolean;


function nedeljas_dienas_numurs(var Gads,Menesis,Diena:integer):integer;
var ds:integer;                     {ds=dienu skaits}

begin
        Gads:=Gads mod 28;
        ds:=3+(365*Gads)+(Gads div 4)+1;
        nedeljas_dienas_numurs:=ds mod 7+1;
end;


function dienunosaukums(var numurs:integer):string;
begin
    dienunosaukums:=nedelja[numurs];
end;

begin
    clrscr;
    writeln('Shi programma var pateikt kuraa dienas nedeljaa ir datums!');
    repeat
        writeln('Ludzu ievadiet gadu: ');
        readln(G);
    until (G>=0);
    repeat
        writeln('Ludzu ievadiet menesi: ');
        readln(M);
    until ((M>=1) and (M<=12));
    repeat
        writeln('Ludzu ievadiet dienu: ');
        readln(D);
    until (((M=1) or (M=3) or (M=5) or (M=7) or (M=8) or (M=10) and (D<=31))
          or ((M=2) and (D<=29) and (G mod 4 = 0))
          or ((M=2) and (D<=28) and (G mod 4 <> 0))
          or ((M=4) or (M=6) or (M=9) or (M=11) and (D<=30))) ;

    NDN:=nedeljas_dienas_numurs(G,M,D);
    writeln('Jusu diena ir ',dienunosaukums(NDN),'!');


readln;
end.
Novenkaja вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немного работа на Паскале Evgenii90 Фриланс 13 09.04.2010 15:21
Списки(отредактировать немного код нужно) Lexeres Помощь студентам 4 25.03.2010 09:10
Немного не работает код лабораторной Sonyalex90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.12.2009 22:53
Помогите немного уменьшить код С++ Olya90 Помощь студентам 10 06.10.2009 10:44
Помогите немного доделать программку на Дельфях HAMMAN Помощь студентам 7 16.05.2007 23:05