IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Помогите перевести код из Pascal в Java (http://www.imho.ws/showthread.php?t=109972)

-=[Stal7]=- 20.10.2006 09:56

Помогите перевести код из Pascal в Java
 
PHP код:

 Pascal:
int main() {
    
FILE *sisf fopen("nadal.sis""rt");
    
char N;
    
int PPKKAAAA;
    
fscanf(sisf"%c, %d.%d.%d", &N, &PP, &KK, &AAAA);
    
fclose(sisf);

    
int esmaspaev_PP;
    
esmaspaev_PP PP anna_nadalapaeva_nr(N);
    if (
esmaspaev_PP <= 0) {
        
esmaspaev_PP += paevi_eelmises_kuus(KKAAAA);
    }
    
    
int nadal = (esmaspaev_PP 1) / 1;

    
FILE *valf fopen("nadal.val""wt");
    
fprintf(valf"%d\n"nadal);
    
fclose(valf);

    return 
0;


В этоге, есть текстовой файл, в нем написано "N, 11, 11, 1988"
Думаю по коду вполне понятно, что с ним надо делать.
Простите за тупость, но уже 3 дня ничего не получается, потому обращаюсь к любимому форуму.

Спасибо зараннее заинтересовывшимся.

shuron 20.10.2006 12:07

Я в паскале никогда не хакал, но помойму anna_nadalapaeva_nr(N) и paevi_eelmises_kuus(KK, AAAA) это вызовы функций котрые тут не описаны..
или нет?

/7y3uK 20.10.2006 12:11

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

Tano 20.10.2006 12:33

Хм..прошу прощения, но это код на с++, а не на паскале.

EvroStandart 20.10.2006 13:53

Цитата:

Сообщение от shuron
Я в паскале никогда не хакал, но помойму anna_nadalapaeva_nr(N) и paevi_eelmises_kuus(KK, AAAA) это вызовы функций котрые тут не описаны..
или нет?

Если я не ошибаюсь, это эстонский. типа дай_номер_дня_недели и дней_в_прошлом_месяце. Строго самопальные функции. :)

crawler 20.10.2006 14:04

это действительно синтакс с++

/7y3uK
psudo code:

Код:

read from text file  "nadal.txt" line ( character>N, integer>PP, integer>KK, integer>AAAA)

do some math:
  int esmaspaev_PP;
    esmaspaev_PP = PP - anna_nadalapaeva_nr(N);
    if (esmaspaev_PP <= 0) {
        esmaspaev_PP += paevi_eelmises_kuus(KK, AAAA);
    }
  int nadal = (esmaspaev_PP - 1) / 7 + 1;

write value of nadal to text file "nadal.val"

функции paevi_eelmises_kuus() и anna_nadalapaeva_nr() остуствуют :)

-=[Stal7]=- 20.10.2006 16:49

Как я рад что сразу стоко отзывов.

Значит, в первую очередь прошу прощения за то что перепутал C++ и Паскаль, не с одним из них не работал, потому и возникают ошибки такого рода.

Теперь о коде... Будь С++ или Паскаль, или ваще Q-basic :yees:

int main() { - главный метод (вроде бы)
FILE *sisf = fopen("nadal.sis", "rt"); - открыть файл nadal.sis, который "только для чтения"

char N; - собственно, чар N
int PP, KK, AAAA; - Числовые переменные PP, KK и AAAA
fscanf(sisf, "%c, %d.%d.%d", &N, &PP, &KK, &AAAA); - файл nadal.sis имеет одну единственную строчку типа: N, 10, 07, 1988 (N - nadala paev - день недели, KK - kuu - месяц, AAAA - aasta - год.)
Цель: мне нужно объяснить яве, что Char N должен принять буквенное значение = 1ой букве в строчке. Соответственно PP = 10 и KK = 07, АААА= 1988 (числовые значения.

N, 10, 07, 1988 - вся эта строка 15 символов, тобишь он должен упускать запятые и пробелы и придавать моим переменным (N, PP, KK, AAAA) значения, те что указаны в файле.

Надеюсь будет понятно. трудно объяснить того чего сам не понимаю :biggrin:

Затем я с ними собираюсь работать, но эта другая история.




fclose(sisf);


Оставшаяся часть меня особо не интересует, ту сам перекодирую.
}

А переменные nadala_paev и еще какая-то здесь действительно не указаны, и потой причине что не о них собственно возня..

Главное, это присвоить 4ем переменным значения из файла (каждой своё)

:yees:

/7y3uK 21.10.2006 20:23

надеюсь я все правильно понял...
Код:

public class Example {

    private static final class DateView {
        private String n;
        private int day;
        private int month;
        private int year;

        private DateView(String n, int day, int month, int year) {
            this.n = n;
            this.day = day;
            this.month = month;
            this.year = year;
        }

        public String getN() {
            return n;
        }

        public int getDay() {
            return day;
        }

        public int getMonth() {
            return month;
        }

        public int getYear() {
            return year;
        }

        public String toString() {
            return n + '/' + day + '/' + month + '/' + year;
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(Example.class.getResourceAsStream("nadal.sis"));
        scanner.useDelimiter(",\\s");
        DateView dateView = new DateView(scanner.next(), scanner.nextInt(), scanner.nextInt(), scanner.nextInt());
        System.out.println(dateView);
    }
}

соответственно, файлик я бросил рядом с классом, нужно переделать, чтобы нормально получать имя файла...
Если б какой-то непонятный N, то можно бы было считать ридером тупо строку и попарсить с помощью SimpleDateFormat сразу в объект Date или Calendar, у которого есть все эти геттеры вплоть до автоматического высчитывания дня недели...

-=[Stal7]=- 22.10.2006 03:21

THANK YOU VERY MUCH ! ! !

Всем большое спасибо за помощь.

ТЕМУ МОЖНО ЗАКРЫВАТЬ


Часовой пояс GMT +4, время: 11:36.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.