Ю.Ю. Громов и др. Информатика (2007)
.pdf
}
void printnames() { int i;
cout « endl;
for(i = 0; i < ListLength; ++i) cout « names[i] « endl;
}
}
//Создание объекта с именем namelist и обращение к нему с
//требованием ввести несколько имен, отсортировать их, а
//затем вывести отсортированный список на экран.
void main()
{ list namelist; namelist.getnames(); namelist.sortlist(); namelist.printnames();
}
Рис. Г.3. Пример программы на языке С++
процедур такие же, как и в программе на языке С, представленной на рис. Г.2. Отличие заключается в том, что в программе на языке C++ эти операции рассматриваются как часть свойств объекта, в то время как в программе на языке С они считаются отдельными модулями той части программы, где эти процедуры описываются.
Язык FORTRAN. FORTRAN (сокращение от FORmula TRANslator – транслятор формул) был одним из первых языков программирования высокого уровня (впервые опубликован в 1957 г.) и первым языком, получившим широкое признание в компьютерном сообществе. Со временем его официальное описание претерпело многочисленные изменения, так что теперь можно встретить ссылки на языки FORTRAN IV и FORTRAN 77. Последним в этом ряду стоит FORTRAN 90, который является дальнейшим развитием языка FORTRAN 77 и обладает такими свойствами, как рекурсия и определяемые пользователем типы данных.
Несмотря на то, что язык FORTRAN критикуется многими авторами, он остается популярным в научном мире. В частности, многие пакеты программ по численному анализу и статистике написаны и, вероятно, до сих пор пишутся на языке FORTRAN. Пример программы на этом языке представлен на рис. Г.4.
!Программа обработки списка
INTEGER J,K CHARACTER(LEN=8) Pivot
CHARACTER(LEN=8) DIMENSION(10) Names
!Сначала получаем имена
READ(UNIT=5, FMT=100) (Names(K), K=l,10)
100 FORMAT(A8)
!Теперь сортируем список
OuterLoop: DO J=2,10 Pivot = Names(J) InnerLoop: DO K=J-1,1,-1
IF (Names(K) .GT. Pivot)
THEN Names(K+l) = Names(K) ELSE InnerLoop
ENDIF
END DO InnerLoop Names (K+l) = Pivot
END DO OuterLoop
!Теперь выводим отсортированный список на экран
WRITE(UNIT=6,FMT=400) (Names(K), K=l,10) 400 FORMAT('',A8)
END
Рис. Г.4. Пример программы на языке FORTRAN
//Программа обработки списка import java.io.*
//Все объекты класса list содержат список имен и три открытых
//метода, которые называются getnames, sortlist и printnames. class list
{ final int ListLength = 10; private String[] names; public list()
{names = new String[ListLength]
}
public void getnames{)
{int i;
Datalnput data = new DatalnputStream(System.in); for(i = 0; i < ListLength; i++)
{ try( names[i] = data.readLine(); catch(IOException e){};
}
public void sortnames() { int i,j;
String pivot;
for(i = 1; i < ListLength; i++) { pivot = names[i]);
j = i - 1;
while((j >= 0) && (pivot.compareTo(names[j]) < 0)) { names[j+1]=names[j];
j--;
}
names[j+1] = pivot;
}
}
public void printnames() { int i;
for(d = 0; i < ListLength; i++) System.out.println(names[i]);
}
}
//Создание объекта с именем namelist и обращение к нему с
//требованием ввести несколько имен, отсортировать их, а
//затем вывести отсортированный список на экран.
class sort
{public static void main (String args[])
{list namelist = new list(); namelist.getnames(); namelist.sortnames();
namelist.printnames();
}
}
Рис. Г.5. Пример программы на языке Java
{Программа обработки списка} program InsertSort(Input, Output);
const Blanks = ' |
'; |
ListLength = 10; |
|
type NameType = packed array [1 .. 8] of char; var Names: Array[l .. ListLength] of Nametype;
Pivot: Nametype; LocationFound: Boolean; J,M,N: Integer;
{ GetName - это процедура чтения отдельного имени} procedure GetName(var Name: NameType);
var J: Integer; begin J := 1;
repeat read(Name[J]); J := J+l; until (J > 8) or eoln; readln;
end; begin
{Сначала вводим имя с клавиатуры} for J := 1 to ListLength do
begin Names[J] := Blanks; Getname{Names[J]) end; {Сортируем список}
N := 2; repeat
Pivot := Name[N]; M := N - 1;
LocationFound := false; while (not LocationFound) do
if Names[M] > Pivot then
begin
Names[M+l] := Names[M];
M := M-l; if M = 0
then LocationFound := true;
end
else LocationFound := true; Names[M+l] := Pivot;
N := N + 1 until N > ListLength;
{ Теперь выводим отсортированный список на экран } for J := 1 to ListLength do writeln (Names[J])
end.
Рис. Г.6. Пример программы на языке Pascal
Язык Java. Java – это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems в начале 90-х гг. Его разработчики много позаимствовали из языков С и C++. Будучи новым языком, Java еще не подвергался стандартизации. Действительно, язык Java все еще находится на стадии эволюции. Однако многие восторженно относятся к этому языку, поскольку он обещает стать стандартом для тех программ, которые известны как "аплеты Java" и которые можно передавать через Internet в виде выполняемых модулей и запускать на любой клиентской машине. Благодаря такой способности статичные по своей природе гипертекстовые документы можно заменить динамичными программами, с которыми пользователь сможет взаимодействовать непосредственно.
Пример программы на языке Java представлен на рис. Г.5. Обратите внимание на сходство языков Java и C++.
Язык Pascal назван в честь французского математика и изобретателя Блеза Паскаля (Blaise Pascal) (1623 – 1662). Разработанный Никлаусом Виртом (Niklaus Wirth) в 1971 г., этот язык подвергался многочисленным более поздним улучшениям, в частности особое внимание было уделено типам данных, созданным в дополнение к структурам, разработан синтаксис со свободным форматом, и добавлены многочисленные управляющие структуры. Сегодня Pascal используется в основном при обучении компьютерным наукам, поскольку способствует выработке у обучающихся организованного подхода к разработке программ. Пример программы на языке Pascal представлен на рис. Г.6.
СПИСОК ЛИТЕРАТУРЫ
1.Брукшир, Дж. Глен. Введение в компьютерные науки. Общий обзор, 6-еизд. / Дж. ГленБрукшир. – М. : Издательский дом
"Вильямс", 2001. – 688 с.
2.Симонович, С.В. Информатика : базовыйкурс/ С.В. Симонович идр. – СПб. : Питер. 2002. – 640 с.
3.Острейковский, В.А. Информатика : учебник для вузов / В.А. Острейковский – М. : Высшая школа, 1999. – 511 с.
4.Каймин, В.А. Информатика: учебникдлявузов / В.А. Каймин. – М. : ИНФРА-М, 2000. – 232 с.
5.Могилев А.В. Информатика : учебное пособие для пед. учеб. заведений / А.В. Могилевидр. ; подред. Е.К. Хеннера. –
М. : Академия, 2000. – 816 с.
6.Информатика : энциклопед. словарь для начинающих / под общ. ред. Д.А. Поспелова. – М. : Педагогика Пресс, 1994. – 352 с.
7.Экономическая информатика / под ред. П.В. Конюховского, Д.Н. Колесова. – СПб. : Питер, 2000. – 560 с.
8.Информатикадляюристов иэкономистов/ подред. С.В. Симоновича. – СПб. : Питер, 2001. – 688 с.
9.Информатика: учебникдлявузов / подред. Н.В. Макаровой. – 3-еизд., перераб. – М. : Финансы и статистика, 2001. – 768с.
10.Жаров, А.В. "Железо" IBM 99 или все о современном компьютере. – 6-е изд., испр. и доп. / А.В. Жаров. – М. : Микро-
Арт, 1999. – 352 с.
11.Компьютерные сети : учебный курс ; пер. с англ. – 2-е изд., испр. и доп. – М. : Изд. отдел "Рус. редакция" ТОО "Chаnnel Traing Ltd", 1998. – 696 с.
12.Бекон, Д. Операционные системы / Д. Бекон, Т. Харрис. – СПб. : Питер, 2004. – 800 с.
13.Олифер, В.Г. Компьютерные сети: Принципы, технологии, протоколы : учебное пособие для вузов / В.Г. Олифер, Н.А. Олифер. – СПб. : Питер, 2001. – 672 с.
14.Анин, Б.Ю. Защитакомпьютерной информации / Б.Ю. Анин. – СПб. : БХВ-Санкт-Петербург, 2000. – 384 с.
15.Епанешников, А.М. ПрограммированиевсредеTurboPascal 7.0 / А.М. Епанешников, В.А. Епанешников. – М. : Диалог-
МИФИ, 1995. – 288 с.
16.Системный анализ в информационных технологиях / Ю.Ю. Громов, Н.А. Земской, А.В. Лагутин, О.Г. Иванова, В.М. Тютюнник. – Тамбов : Изд-во Тамб. гос. техн. ун-та, 2004. – 176 с.
17.Немнюгин С.А. TurboPascal : практикум / С.А. Немнюгин. – СПб. : Питер, 2001. – 256 с.
18.Решение инженерных и экономических задач на языке С++ / Ю.Ю. Громов, С.И. Татаренко, В.М. Тютюник, А.В. Лагутин, О.Г. Иванова. – Тамбов : Изд-во МИНЦ, 2003. – 312 c.
19.Орлов, С. Технологияразработки программногообеспечения / С. Орлов. – СПБ. : Питер. 2002. – 464 с.
ОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ …………………………………………………….. |
3 |
ВВЕДЕНИЕ ………………………………………………………….. |
4 |
1. ХРАНЕНИЕ ДАННЫХ ………………………………………… |
7 |
1.1.Основная память ………………………………………... 7
1.2.Запоминающие устройства большой емкости ………... 15
1.3. Представление целых чисел …………………………… 23
1.4.Представление дробных чисел* ………………………. 29
1.5. |
Представление текста, изображений и звука ………… |
33 |
1.6. |
Сжатие данных* ………………………………………… |
39 |
1.7.Ошибки при передаче информации* ………………….. 46
Упражнения …………………………………………….. 51
Ответы на вопросы для самопроверки ………………… 59
2.ОБРАБОТКА ДАННЫХ ………………………………………. 65 2.1. Центральный процессор ……………………………….. 65
2.2. Машинный язык ………………………………………… 69
2.3.Выполнение программы ……………………………….. 74
2.4. Арифметические и логические команды ……………… |
80 |
|
2.5. |
Взаимодействие ЦП с периферийными устройствами* |
85 |
2.6. |
Другие типы архитектуры компьютеров* ……………. |
91 |
|
Упражнения …………………………………………….. |
96 |
|
Ответы на вопросы для самопроверки ……………….. |
104 |
3.ОПЕРАЦИОННЫЕ СИСТЕМЫ И СЕТИ ……………………. 109
3.1. |
Эволюция операционных систем ……………………… |
109 |
3.2. |
Архитектура операционных систем …………………… |
114 |
3.3.Координация действий машины ………………………. 122
3.4. Организация конкуренции между процессами* ……… 127
3.5.Сети ……………………………………………………… 133
3.6.Сетевые протоколы* ……………………………………. 142
3.7.Безопасность …………………………………………….. 154
Упражнения …………………………………………….. |
157 |
Ответы на вопросы для самопроверки ………………… |
162 |
4.АЛГОРИТМЫ ………………………………………………….. 166
4.1.Понятие алгоритма ……………………………………... 166
4.2. Представление алгоритма ……………………………… 169
4.3.Создание алгоритма ……………………………………. 177
4.4.Итерационные структуры ………………………………. 185
4.5.Рекурсивные структуры ………………………………... 196
4.6.Эффективность и правильность ……………………….. 206
Упражнения …………………………………………….. 219
Ответы на вопросы для самопроверки ………………… 226
5.ЯЗЫКИ ПРОГРАММИРОВАНИЯ ……………………………. 230
5.1.Эволюция и классификация ……………………………. 230
5.2.Концепции традиционного программирования ………. 241
5.3.Процедуры и функции ………………………………….. 257
5.4.Реализация языка ……………………………………….. 264
5.5.Объектно-ориентированное программирование* ……. 275
5.6.Программирование параллельных процессов* ………. 279
5.7.Декларативное программирование* …………………... 283
Упражнения …………………………………………….. |
289 |
Ответы на вопросы для самопроверки ………………… |
294 |
6.ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ …………………... 298
6.1.Предмет технологии разработки программного обес-
печения ………………………………………………….. 298
6.2.Жизненный цикл программного обеспечения ……….. 301
6.3.Модульность ……………………………………………. 308
6.4.Методы проектирования ………………………………. 315
6.5. Тестирование …………………………………………… 323
6.6.Документирование …………………………………….. 325
6.7.Право собственности и ответственность за создавае-
мое программное обеспечение |
328 |
Упражнения …………………………………………….. |
331 |
Ответы на вопросы для самопроверки ………………… |
334 |
СПИСОК ЛИТЕРАТУРЫ ………………………………………….. |
338 |
ПРИЛОЖЕНИЯ ……………………………………………………… |
340 |
Для заметок
