Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 80

Pascal to Java

28.12.2011, 18:26. Показов 5626. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Пишу, собственно, вот по какому поводу. Нужно написать курсовую, а из языков программирования более-менее освоил лишь Паскаль. Так вот, задание курсовой следующее:

Разработать программу «Выравнивание». Исходная информация: текст, записанный в текстовом файле. Программа выводит этот текст с выравниванием по краям. Текст выводится без переносов слов. Параметры абзаца задаются в диалоговом режиме.

И то, что смог сделать на Паскале:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
program format;
uses crt;
var
filename,slovo,stroka:string;
f:text;
dlina,otstup,i:byte;
simvol:char;
begin
slovo:=' ';
repeat
clrscr;
write('введите имя файла :'); readln(filename); write('введите отступ :'); readln(otstup); write('введите длину строки :'); readln(dlina); clrscr;
assign(f,filename);
reset(f);
until ioresult=0;
write(' ':otstup);
while not eof(f) do begin
read(f,simvol);
if ord(simvol)<>10 then begin
if simvol<>' ' then slovo:=slovo+simvol
else begin
if (length(stroka)+length(slovo))>dlina then begin stroka:=' ';
writeln;
write(' ':otstup);
end;
stroka:=stroka+slovo+simvol;
write(slovo,simvol);
slovo:=' ';
end;
end
else begin
write(slovo);
write(' ':otstup);
slovo:=' ';
stroka:=' ';
end;
end;
close(f);
readkey;
end.
Нужно либо этот код перевести в Java, либо написать что-нибудь подобное в той же Джаве. К сожаление, ни того, ни другого я не умею. Так что прошу помочь мне в этом. С уважением.

Добавлено через 6 часов 43 минуты
Уважаемые товарищи программисты. Помогите, пожалуйста, с этим... Не умею я конвертацию между языками проводить, а очень нужно...

Добавлено через 17 часов 28 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class format {
    public static String filename,slovo,stroka;
    public static text f;
    public static byte: dlina,otstup,i;
    public static char simvol;
    {
        slovo = " ";
        do {
            System.out.print("Введите имя файла :"); System.out.readln(filename);
            System.out.print("введите отступ :"); System.out.readln(otstup); 
            System.out.print("введите длину строки :"); System.out.readln(dlina);
            assign(f,filename);
            reset(f);
        } while (!(ioresult=0));
        System.out.print(" ":otstup);
        While(not end of file(f));{
        System.out.read(f,simvol);
        if(ord(simvol)<>10)
        {
            if(simvol<> " ") slovo = slovo+simvol
                    } else
        {
            if (length(stroka)+length(slovo))>dlina {
            stroka=" ";
            System.out.println;
            System.out.print(" ":otstup);
        }
            stroka=stroka+slovo+simvol;
            System.out.print(slovo, simvol);
            slovo=" ";
        }
        }else
    {
        System.out.print(slovo);
        System.out.print(" ":otstup);
        slovo=" ";
        stroka=" ";
    }
}
getKeyCode;
}
В общем, вот что получилось в итоге... Естественно, что неправильно. Может подскажет кто, где какие ошибки?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2011, 18:26
Ответы с готовыми решениями:

Перевод кода с Pascal на Java - Java SE
var a:Int64; begin Reset(Input,'input.txt'); Rewrite(Output,'output.txt'); read(a); Write(a,9,9-a) end. Заранее...

Из Pascal в Java
Нужно перевести 2 кода. использовать вот эти библиотеки: import javax.swing.*; import java.util.*; program 1; uses crt; ...

Из pascal в java
Ребзя, помогите переделать программу pascal в java. Кому не лень ;) Program f; var s:string; Begin readln(s); while...

24
 Аватар для exiqa
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
10.01.2012, 22:37
Студворк — интернет-сервис помощи студентам
что подразумевается под экранной формой? Распишите подробно, что там должно быть
0
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 80
17.01.2012, 00:11  [ТС]
Ну... Должна быть внешняя оболочка программы (пользовательский интерфейс). В нем 2 строки ввода параметров и поле вывода текста. Но это в NetBeans'e должно быть сделано, с кодом этой формы оттуда.
0
 Аватар для exiqa
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
17.01.2012, 19:57
не понял, почему именно в нетбинсе. Вот чего я наг....кодил. Как будете разбираться - не знаю

Вам нужно будет создать два класса. Вот первый

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
 
public class StringAdjuster {
    
    File file;
    BufferedReader br;
    
    public StringAdjuster(File file) {
        this.file = file;
    }
    
    private String addIndent(String str, int indent) {
        StringBuilder sb = new StringBuilder(str);
        for(int i = 0; i < indent; i++) {
            sb.insert(0, " ");
        }
        return sb.toString();
    }
    
    private String adjustString(String str, int len) {
        String[] words = str.split("\\s+");
        int neededSpaces = len - str.length() + words.length - 1;
        
        while(neededSpaces != 0) {
            for(int i = 0; i < words.length - 1; i++) {
                words[i] += " ";
                if(--neededSpaces == 0) {
                    break;
                }
            }
        }
        
        StringBuilder sb = new StringBuilder();
        for(String word : words) {
            sb.append(word);
        }
        
        return sb.toString();
    }
    
    private List<String> justifyStrings(String str, int len, int indent) {
        int count = indent;
        String[] array = str.split("\\s+");
        Deque<String> words = new LinkedList<String>();
        for(String w : array) {
            words.add(w);
        }
        
        List<String> result = new ArrayList<String>();
        StringBuilder sb = new StringBuilder();
        
        // добавляем строку с абзацем
        while((count += words.peekFirst().length() + 1) < len) {
            sb.append(words.removeFirst());
            sb.append(" ");         
        }
        String temp = adjustString(sb.toString().trim(), len-indent);
        sb.setLength(0);
        sb.append(addIndent(temp, indent));
        result.add(sb.toString());
        sb.setLength(0);
        count = 0;
        
        // добавляем оставшиеся строки
        while(words.size() != 0) {
            if((count += words.peekFirst().length() + 1) < len) {
                sb.append(words.removeFirst());
                sb.append(" ");
            } else {
                result.add(adjustString(sb.toString().trim(), len));
                sb.setLength(0);
                count = 0;
            }
        }
        result.add(sb.toString().trim());
        
        return result;
    }
    
    public String getText(int len, int indent) throws IOException {
        br = new BufferedReader(new FileReader(file));
        String line;
        StringBuilder sb = new StringBuilder();
        
        while((line = br.readLine()) != null) {
            if((line.length() + indent) > len) {
                List<String> resultList = justifyStrings(line, len, indent);
                for(String s : resultList) {
                    sb.append(s);
                    sb.append("\n");
                }
            } else {
                sb.append(addIndent(line, indent));
                sb.append("\n");
            }
        }
        br.close();
        return sb.toString();
    }
 
}
второй, непосредственно гуи

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
 
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
public class ProgramFrame extends JFrame {
    
    private File inFile;
    
    public ProgramFrame() {
        super("String Adjuster");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JPanel controlPanel = new JPanel();
        final JLabel openedFile = new JLabel("Файл не выбран");
        final JLabel indentText = new JLabel("Абзац: ");
        final JTextField indentField = new JTextField(5);
        final JLabel lineLengthText = new JLabel("Длина строки");
        final JTextField lineLengthField = new JTextField(5);
        final JButton openFile = new JButton("Открыть файл");
        controlPanel.add(indentText);
        controlPanel.add(indentField);
        controlPanel.add(lineLengthText);
        controlPanel.add(lineLengthField);
        controlPanel.add(openFile);
        controlPanel.add(openedFile);
        openFile.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser fc = new JFileChooser();
                int retVal = fc.showDialog(null, "Open File");
                if(retVal == JFileChooser.APPROVE_OPTION) {
                    inFile = fc.getSelectedFile();
                    openedFile.setText(inFile.getName());
                }
            }
        });
                
        final JPanel textPanel = new JPanel();
        final JTextArea allText = new JTextArea();
        textPanel.add(allText);
        final JScrollPane sPane = new JScrollPane(textPanel);
                        
        final JPanel startPanel = new JPanel();
        final JButton startButton = new JButton("Запустить");
        startPanel.add(startButton);
        startButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int indent = 0;
                int lineLength = 0;
                StringAdjuster sa = new StringAdjuster(inFile);
                try {
                    indent = Integer.parseInt(indentField.getText());
                    lineLength = Integer.parseInt(lineLengthField.getText());
                } catch(NumberFormatException ex) {
                    ex.printStackTrace();
                }
                try {
                    allText.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
                    allText.setText(sa.getText(lineLength, indent));
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        });
        
        getContentPane().add(startPanel, BorderLayout.SOUTH);
        getContentPane().add(controlPanel, BorderLayout.NORTH);
        getContentPane().add(sPane, BorderLayout.CENTER);
        setPreferredSize(new Dimension(900, 600));
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
    
    public static void main(String[] args) {
        new ProgramFrame();
    }
 
}
запускать второй.

все это работает только с моноширинным шрифтом.
вот как выглядит
Миниатюры
Pascal to Java  
0
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 80
25.01.2012, 12:31  [ТС]
Спасибо Вам огромное Все сделал и успешно сдал курсовую Еще раз спасибо.
0
 Аватар для exiqa
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
25.01.2012, 15:41
я рад, что Вам это помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2012, 15:41

Из Pascal в Java!
Привет всем джаверам пожалуйста если вам не сложно не могли бы вы перевести это на Java! uses crt; const n=7; var...

Java to Pascal
Необходимо транслировать код с Java на Pascal в связи с тем, что синтаксис паскаля мною забыт давным давно, а времени на восполнение...

из JAVA в PASCAL
В общем, у меня проблемка. Нужно из Java прогу &quot;конвертировать&quot; в Pascal. Сама задача такова: Игра &quot;Вращающий квадрат&quot;. Дан...

Pascal to Java
Добрый день , помогите переделать код в java , но только для другой функции f:=cos(x)-sqrt(x) код: // Метод &quot;Золотого...

Из java в pascal
Доброе время суток! Ребят помоги перевести из java на pascal! Очень нужно( package relax; import java.io.*; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru