Задания на лабораторные работы для ЭВМд, 1 курс
(2 семестр)
Замечания (для всех лабораторных работ) 3
Требования по форматированию исходного кода 6
1 - Introduction 6
1.1 Why Have Code Conventions 6
1.2 Acknowledgments 6
2 - File Names 7
2.1 File Suffixes 7
File Type 7
Suffix 7
2.2 Common File Names 7
File Name 7
Use 7
3 - File Organization 8
3.1 Java Source Files 8
Part of Class/Interface Declaration 9
Notes 9
4 - Indentation 10
4.1 Line Length 10
4.2 Wrapping Lines 10
5 - Comments 12
5.1 Implementation Comment Formats 12
5.2 Documentation Comments 14
6 - Declarations 15
6.1 Number Per Line 15
6.2 Initialization 15
6.3 Placement 15
6.4 Class and Interface Declarations 16
7 - Statements 17
7.1 Simple Statements 17
7.2 Compound Statements 17
7.3 return Statements 17
7.4 if, if-else, if else-if else Statements 17
7.5 for Statements 18
7.6 while Statements 18
7.7 do-while Statements 18
7.8 switch Statements 18
7.9 try-catch Statements 19
8 - White Space 20
8.1 Blank Lines 20
8.2 Blank Spaces 20
9 - Naming Conventions 21
Identifier Type 21
Rules for Naming 21
Examples 21
10 - Programming Practices 23
10.1 Providing Access to Instance and Class Variables 23
10.2 Referring to Class Variables and Methods 23
10.3 Constants 23
10.4 Variable Assignments 23
10.5 Miscellaneous Practices 24
11 - Code Examples 25
11.1 Java Source File Example 25
Лабораторная работа № 1 (одномерные массивы) 27
Лабораторная работа № 2 (двухмерные массивы) 36
Лабораторная работа № 3 (работа со строками) 41
Лабораторная работа № 4 (работа с текстовыми файлами) 45
Лабораторная работа № 5 (записи, знакомство со структурами данных) 48
Лабораторная работа № 6 (статические массивы, знакомство с графическим режимом. Возможно будет изменена) 49
Лабораторная работа № 7 (динамические массивы) 52
Лабораторная работа № 8 (односвязанный список) 55
Лабораторная работа № 9 (двухсвязанные списки) 57
Лабораторная работа № 10 (дерево поиска или двоичное дерево) 58
Лабораторная работа № 11 (ХЭШ) 59
Лабораторная работа № 12 (ознакомление с API Windows) 60
Лабораторная работа № 13 (оценка сложности алгоритмов) 61
Замечания (для всех лабораторных работ) Изучаемый язык – С++ (Borland C++ или Turbo C++ или Visual C++), поэтому необходимо писать на С++, а не на чистом С. Если программа написана на чистом С, в классе её необходимо будет переделать под С++.
Существенным плюсом при сдаче лабораторной работы является использование «специализированных» функций. Например, вместо «value = value + 1» необходимо писать «value++»
При написании программ на других С-подобных языках (например Turbo C) помните, что вы можете не суметь скомпилировать программу в классе из-за отсутствия необходимой среды разработки. Принесенные с собой exe файлы запускать нельзя, необходимо скомпилировать программу в классе при преподавателе.
Для лабораторных работ с 8 по 13 включительно вариантов в «чистом» виде нет. Задание общее для всех – демонстрация работы структуры данных (у любой структуры данных есть операции добавления, удаления, поиска, очистки). Все будет решаться при ответах на дополнительные вопросы при сдаче лабораторной работы.
Для любой лабораторной работы, кроме 1 и 2, необходимо обязательно сверить свой вариант со списком, который будет у старост. Список будет им отдан в течении 2й недели учебы, когда состав группы «зафиксируется».
Исходный код программы ОТФОРМАТИРОВАН. При наличии «сильно» неформатированного кода в 1 и 2 лабораторных работах они даже не рассматриваются. Если нарушения форматирования «не сильные» то указываются ошибки форматирование и рассматривается функциональность программы. В любом случае В ОТЧЕТЕ код программы идеально отформатирован (оправдание типа «WORD так сам сделал» не принимается во внимание).
При нарушении форматирования в любой лабораторной работе после 2й, студенту делается замечание, что код не форматирован, и преподаватель не рассматривает лабораторную работу и не указываются ошибки форматирования. При этом ошибкой может считаться даже ОДИН пробел, который «стоит не на своем месте», или его отсутствие.
Имена переменных ОСМЫСЛЕННЫЕ. Имена переменных, состоящие только из одной буквы, допускаются только для счетчиков циклов (i,j,k). Эти имена (i,j,k) можно использовать только для счетчиков циклов. Локальные переменные с такими именами объявлять нельзя.
Все имена необходимо называть на английском языке, хотя «транслит» разрешен только тем, кто изучает не английский язык (например, немецкий или французский). Так же запрещено «смешение» названий (напр. Go_vlevo – недопустимое имя, потому что go – английское слово, vlevo - транслит)
В начале работы программы на экран выводится сообщение, в котором содержится
Номер лабораторной работы
ФИО и группа автора
Задание на лабораторную работу
После нажатия любой клавиши программы продолжает свое выполнение
После сдачи ЛЮБОЙ лабораторной работы с номерами от 8 до 14 считается, что студент знает ВСЕ стандартные структуры данных.
Замечание: структуры данных очень хорошо и «доступно» описаны книге Вирта «Алгоритмы + структуры данных = программа».
Если студент сдал какую-либо лабораторную работу, то при защите любой другой лабораторной работы может быть комбинированный вопрос, затрагивающий тему сданной лабораторной работы. В случае неудачной защиты сданная лабораторная работа отменяется, студенту назначается другой вариант задания, и он пересдает отмененную лабораторную работу (вместе с отчетом).
Например, студент сдал и защитил 5 лабораторную работу. После этого через некоторое время он сдал программу для 8 лабораторной работы. При защите он не смог ответить на комбинированный вопрос, связанный с 5 и 8 лабораторной. Ему необходимо будет пересдать программу для 5 лабораторной работы и отчеты для 5 и 8 лабораторных работ. Пересдача программы для 8 лабораторной работы – на усмотрение преподавателя.
Во всех лабораторных работах (кроме первых 2х) программа должна «держать» любой ввод.
Во всех лабораторных работах, использующих динамическое выделение памяти (new или calloc) программы должны быть оформлены следующим образом (данный код демонстрирует проверку наличия так называемых «утечек памяти»):
#include
#include void lab() {
//выполнение задания лабораторной работы
} void main() {//или int main()
unsigned long coreBegin = coreleft();
lab();
if (coreleft() != coreBegin) {
printf(“memory leak”);
getch();
}
} В процедуре lab() выполняется сама лабораторная работа. В случае утечки памяти (memory leak) программа выполнена неверно и не рассматривается
|