Программирование на ЯВУ. Задания к практике
.doc| 
			 Министерство образования и науки Российской Федерации НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 
 
 
 
 
 
 Кафедра информатики и систем управления 
 
 
 
 ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ 
 
 Задания к выполнению практических работ для студентов специальностей 220200 “Автоматизированные системы обработки информации и управления” и 071900 “Информационные системы” (в технике) дневной формы обучения 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Нижний Новгород 2010 Составитель Э.С.Соколова 
 УДК 681 
 Программирование на языке высокого уровня: Задания к выполнению практических работ /НГТУ; Сост.: Э.С. Соколова; Н.Новгород, 2010. – 13 с. 
 
 Приведены постановки задач к практическим занятиям по курсу “Программирование на языке высокого уровня” в соответствии с учебным планом специальностей 220200 “Автоматизированные системы обработки информации и управления” и 071900 “Информационные системы”. . 
 
 
 
 
 
 
 
 Научный редактор Ю.С.Бажанов Редактор И.И.Морозова 
 
 
 
 
 
 
 
 
 
 
 
 
 
 © Нижегородский государственный технический университет, 2010 
  | 
		
			 
  | 
		
			 ЗАНЯТИЕ 6 Файловые типы данных 
 
 а) распечатать значение последней компоненты файла; б) найти сумму наибольшей и наименьшей компонент файла; в) разность первой и последней; г) распечатать файл в обратном порядке; д) удалить из файла все отрицательные числа; е) осуществить поиск заданного значения. 
 
 а) определить число строк в текстовом файле; б) найти строки максимальной и минимальной длины; в) найти наибольшую и наименьшую строки по значению. 
 
 
 
 
 1 22 333 4444 . . . 999999999 
 
 
 
 а) значений строк; б) длин строк. 
 9 ЗАНЯТИЕ 7 Динамические структуры данных. Работа с указателями 
 
 а) определить сумму элементов массива; б) поменять местами i-ю и j-ю строки. 
 
 
 
 
 const n = 100; type mas = array[1..n] of ^string; var st: ^mas; 
 
 а) проверить упорядоченность списка; б) упорядочить список в алфавитном порядке; в) вставить в список фамилию, не нарушив упорядоченности; г) исключить заданную фамилию из списка. 
 
 
 
 а) добавления компоненты в конец очереди; б) извлечения компоненты из начала очереди; в) вывода содержимого очереди на экран. 
 
 
 
 
 
 
 
 10  | 
	||||||||
| 
			 ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PASCAL 
 ЗАНЯТИЕ №1 Составление алгоритмов для решения задач 
 Составить блок-схемы для решения следующих задач: 
 
 а) y = a7 + 2a6 +3a5 +4a4 +5a3 +6a2 +7a +8; б) y = 8a7 +7a6 +6a5 +5a4 +4a3 +3a2 +2a +1. 
        
			  
			 
 	 
 	 
 
 ЗАНЯТИЕ 2 Простые типы данных, ввод/вывод данных, операции и выражения, операторы Знать: - внутреннее представление числовых типов данных; - перевод чисел из одной системы счисления в другую (двоичные, восьмеричные, шестнадцатеричные значения); - как хранятся символьные значения, что такое ASCII код. Виды представления значений типа char (‘a’, ‘1’, #13, $FF). 3 
 
 а)12310  x2  x8  x16 б) 1FF16  x2  x8  x10 в) 1100111100001110  x8  x16  x10 
 1
				 19
				sep
				2004 2004
				sep
				19 
 
 
 11. Вычислить значения выражений: 
				 а)
				   trunc(-1.8) = ?				е)
				  15 div 4 = ? б)
				   trunc(6.9) = 	?				ж)
				 20 mod 4 = ? в)
				   round(0.6) = ?				з)
				  3.2 mod 2 = ? г)
				   -5 mod 2 + 40 div 3 * 3 = ? д)
				  3*7 div 2 mod 7/3 – trunc(sin(1)) = ? 
 
 
 
 
 
 
 
 
 
 б) Присвоить целой переменной k 1-ю (в общем случае r-ю) цифру дробной части положительного вещественного числа. в) Целой переменной S присвоить сумму цифр 3-хзначного (в общем случае n-значного) целого положительного числа. 
 
 
 а) 0  x  1; б) x  max (x,y,z); в) x = max (x,y,z). 
 
 
 4 
 a := true; x:=1; Определить тип и значение d: 
 а) d := x<2; б) d:=not a or odd(x); в) d:= ord(a)<>x; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 а) writeln (‘abcdef’); б) writeln (‘abc def’); в) writeln(‘abc’, ‘def ’); 
 
 
 
 
				 a)
				  for i:=1 to 100000 do 
				for j:=1 to 1000 do; 
				 б)
				  for i:=1 to 1000 do 
				for j:=1 to 100000 do; 
				 
 
 5 ЗАНЯТИЕ 3 Обработка последовательностей информации без сохранения их в памяти 
 Не используя тип массив, решить задачи: 
 
 
 
 
 
 
 
 а) разность между минимальным и максимальным значениями; б) определить порядковые номера максимума и минимума во вводимой последовательности; в) каким по счету в последовательности идет число, равное x; г) вывести на экран все числа, попадающие в заданный интервал; д) определить, упорядочена ли вводимая последовательность. 
 
 
 
 
 
 
 
 
 
 ЗАНЯТИЕ 4 Массивы (array), строки (string), множества (set) 
 
 
 6 Используя тип массив (array), решить задачи: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 а) самую длинную строку в тексте; б) количество введенных строк; в) количество пустых строк; г) номер строки, равной заданной; д) количество слов в i-й строке (слова разделяются пробелами); е) найти самое длинное слово в i-й строке. 
 
 
 
 
 
 а) строки наибольшей и наименьшей длины; б) строки, наибольшую и наименьшую по значению. 
 
 
 
 
 
 7 ЗАНЯТИЕ 5 Процедуры, функции Комбинированный тип данных - запись (record) 
 
 а) средний балл группы за экзамен; б) список студентов, получивших оценку 2. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 а) списка претендентов на отчисление (студентов, получивших три двойки за сессию); б) списка отличников для назначения повышенной стипендии. 
 
 
 
 
 8  | 
		
			 
  | 
		
			 ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++ ЗАНЯТИЕ 1 Введение в программирование на С++ 
 
 
 #include <stdio.h> void main() { int day, year; char month[10]; printf ("Программа работает\n"); scanf ("%d %d", &day, &year); scanf ("%s", month); printf("Сегодня %d %s %d", day, month, year); } Пусть формат ввода даты с экрана имеет вид: 5 septemba 2005 Как следует модифицировать приведенную выше программу для ввода даты? 
 
 чисел. 
 
 а) int i=2; printf(“%d”, i++); printf(“%d”, ++i); 
 б) int i=1, j=5; printf(“%d”, i+++j); printf(“%d %d %d”, i, i+++j, i); printf(“%d”, ++i+j); printf(“%d %d %d”, i, ++i+j, i); 
 в) int i=2, k=123; printf(“%d %d”, k>>i, k<<i); 
 г) int x=20000; int y=x*2; // sizeof(int) = = ? y= = ? printf(“y=%d” ,y); // Как хранятся отрицательные числа? 
 д) char ch=’a’; printf(“%c, %c, %c, %c\n”, ch, ch+1, ch+2, ch+3); 11 ch=’a’; printf(“%c, %c, %c\n”, ch+1, ch+2, ch+=3); ch=’a’; printf(“%c, %c, %c, %c\n”, ch, ++ch, ++ch, ++ch); 
 е) printf(“%d, %d, %d, %d\n”, sizeof 4.2, sizeof (5+1), sizeof “5+1”); 
 
 Sidorov 5 5 4 4 Определить средний балл студента. 
 
 Длина=125см, ширина=10см Определить площадь прямоугольника, выделив числа из текста. 
 ЗАНЯТИЕ 2, 3 Управляющие инструкции языка С++ 
 
 
 
 
 
 
 
 
 1 4 9 16 25 // при к=5 Продолжить(y/n)? // в зависимости от ответа печать следующих 36 49 64 81 100 // значений квадратов или останов 
 
 
 
 а) байтовое значение, все биты которого равны 1; б) двухбайтовое значение, все биты которого равны 1. 
 
 12 
 
 а) определить сумму положительных и сумму отрицательных чисел; б) определить сумму четных чисел; в) найти максимальное и минимальное значения; г) организовать поиск заданного значения; д) проверить упорядоченность вводимой последовательности. 
 
 
 
 
 
 
 
 
 
 а) сумму двух чисел; б) большее из двух чисел; в) поразрядную конъюнкцию двух чисел. 
 
 
 Количество (кг) стоимость (руб.) 
 . . . . 
 ЗАНЯТИЕ 4, 5 Массивы и указатели 
 
 а) поиск заданного значения; б) определение суммы элементов массива; с) меняющую местами max и min элементы в строках массива. 
 13 
 
 
 
 
 int a[ ][3] = {{1,2,3}, {4,5,6}, {0,2,4}, {6,8,0}}; 
 Найти сумму четных элементов массива. 
 
 
 
 
 char str1[ ] = ”Язык программирования”; char str2[ ] = ”Borland C++”; char *p1, *p2, *p3; 
 
 
 
 a) с помощью функций посимвольного ввода (getchar()); б) с помощью функций ввода строк (gets()); в) с помощью операции ввода cin >>; г) определить самую длинную строку текста; д) поменять самую короткую строку текста с самой длиной; е) осуществить поиск заданной строки в массиве. 
 
 
 
 1) int *(*comp[10])(); 2) int (*a)[10]; 3) int *a[10]; 4) int *func()[]; 5) int (*func())[]; 6) int *fun(); 14 7) int (*func)(); 8) char *(*(*val)())[10]; 9) char **arg; *++*arg; // как вычисляется значение arg? 10) const int n=100; 11) const int * p; 12) int * const p=&x; 13) const int * const p=&n; 
 
 
 
 1) 2) 
 
 
 
 
 
 
 
 
 ЗАНЯТИЕ 6 Структуры, ввод/вывод в файл 
 
 struct student { char fam[20]; int ball[4]; float srball;} ; Создать массив структур. Написать функции определения фамилий двоечников, отличников. Определить средний балл группы. Для доступа к элементам структуры использовать операцию точка, указатель на структуру. 
 
 
 
 
 
 15 
 а) проверки упорядоченности чисел; б) поиск заданного значения; в) корректировки файла (удвоение нечетных чисел); г) дозаписи информации в файл. 
 
 а) строки минимальной и максимальной длины; б) максимальную и минимальную строки по значению; в) реализовать поиск заданной строки в файле; г) упорядочить строки в файле в алфавитном порядке; д) вставить строку в текст, не нарушая упорядоченности. 
 
 
 
 
 ЗАНЯТИЕ 7, 8 Динамические структуры данных 
 
 а) int mas[10][20],**p; //Связать переменную p c переменной mas, вывести mas через p; б) int **p; // Создать двухмерный массив. В) int *p[100]; // Создать двухмерный массив. 
 
 
 
 
 
 
 
 
 16  | 
	||||||||
| 
			 
  | 
		
			 
  | 
		
			 
  | 
	


начение
				функции задано графически. Вычислить
				значение y,
				если x
				вводится с клавиатуры.