Программирование на ЯВУ. Задания к практике
.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 |
||||||||
|
|
|