Другие языки программирования и технологии
Здраствуйте. Оцените программу. Pascal ABC.
Код: var a:array[1..100] of integer; f,i,n,m,k,j:integer; p:string; begin cls; writeln('Перевод десятичного числа в заданную систему счисления'); writeln('Введите основание системы счисления, в которую перевести исходное число:'); readln(n); writeln('Введите исходное десятичное число'); readln(m); f:=m; for i:=1 to 30 do begin j:=m mod n; a:=j; m:=m div n; end; begin for i:=1 to 30 do if a>=1 then k:=i; end; writeln ('________________________________________________________________________________________________'); writeln; write ('Десятичное число ',f,', при переводе в систему счисления с основанием ',n,' примит вид: '); for i:=k downto 1 do if a<10 then write(a) else begin if a=10 then p:='A'; if a=11 then p:='B'; if a=12 then p:='C'; if a=13 then p:='D'; if a=14 then p:='E'; if a=15 then p:='F'; write(p); end; writeln; write('________________________________________________________________________________________________'); writeln; write('Конец.'); read; end. Вот я написал такую простенькую программу, я в этом деле новичек, и поэтому хочу узнать Ваше мнение. 1) Логично ли я вообще составляю программу? 2) Может тут всё гараздо проще? 3)Вообще стоит ли мне програмировать? Или это не моё?. База знаний у меня только по школьному курсу информатики. Поясните пожалуйста свой ответ. Заранее благодарю.
Замечания:
1) Названия переменных бессмысленные
2) "Магические числа" ( 30. Почему именно 30? чем например 137 не понравилось или 42? Сходу не видно. )
3) p нужно только чтобы присвоить символ и сразу его вывести - неразумно.
4) if a=10 then p:='A'; и подобное можно заменить на одну строчку p := Chr(Ord('A')+a-10);
5) end; begin - вообще странно.. . Можно, конечно, но зачем?
Теперь отвечаю на вопросы:
1) В целом по этому коду логику понять сложно, причины выше.
2) Да.
3) Если ты смог сам написать такую программу, то принципиально программировать можешь. Вопрос только в том хочешь ли ты этого.
Резюме:
Код ужасен, но кто сразу начал писать красиво? Принципиально задача решена (не знаю насколько правильно, но верю, что правильно) , а значит в принципе программировать можешь. Как препод (хоть и бывший) могу смело поставить тройку на уровне первого курса универа. Замечания представленные выше исправляются книжками, друзьями-программистами и, конечно, личным опытом.
PS: Если решишь заниматься программированием - желаю удачи в этом непростом, но интересном деле! :)
1) Названия переменных бессмысленные
2) "Магические числа" ( 30. Почему именно 30? чем например 137 не понравилось или 42? Сходу не видно. )
3) p нужно только чтобы присвоить символ и сразу его вывести - неразумно.
4) if a=10 then p:='A'; и подобное можно заменить на одну строчку p := Chr(Ord('A')+a-10);
5) end; begin - вообще странно.. . Можно, конечно, но зачем?
Теперь отвечаю на вопросы:
1) В целом по этому коду логику понять сложно, причины выше.
2) Да.
3) Если ты смог сам написать такую программу, то принципиально программировать можешь. Вопрос только в том хочешь ли ты этого.
Резюме:
Код ужасен, но кто сразу начал писать красиво? Принципиально задача решена (не знаю насколько правильно, но верю, что правильно) , а значит в принципе программировать можешь. Как препод (хоть и бывший) могу смело поставить тройку на уровне первого курса универа. Замечания представленные выше исправляются книжками, друзьями-программистами и, конечно, личным опытом.
PS: Если решишь заниматься программированием - желаю удачи в этом непростом, но интересном деле! :)
Правильность не проверял, но на первый взгляд код действительно начинающего!
Самое главное, что был задан данный вопрос и не боишься критики, значит если будет желание то дела пойдут дальше только в гору!
Самое главное, что был задан данный вопрос и не боишься критики, значит если будет желание то дела пойдут дальше только в гору!
лучше было сделать через case, так меньше будет проверок или else if использовать. а так вроде нормально
Похожие вопросы
- Почему нельзя настраивать массив в процессе работы программы? Pascal ABC ну и если так вообще везде?
- Проблема с программой в Pascal ABC,Встречено ';',а ожидалось ':'. Если менять, то вылетает ещё ошибка с if
- Программа в pascal abc
- Подскажите пожалуйста, какая ошибка в программе на Pascal ABC.NET?
- При введении программы на Pascal ABC выдается ошибка "нельзя вводить данные типа "массив", массивы вводятся поэлементно
- Помогите с Pascal ABC. Можно ли соединить модуль Graph и обычную программу ?
- Нужно создать программу в Pascal ABC.NET
- Помогите написать простые программы и задачи в Pascal ABC. Алгоритмы ветвления. Информатика. Програмирование.
- Помогите составить программу в Pascal ABC
- Напишите пожалуйста 2 программы в pascal ABC, программы в описании