Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания icon

Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания




НазваМетодические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания
Сторінка4/8
Дата конвертації26.02.2013
Розмір1.33 Mb.
ТипМетодические указания
1   2   3   4   5   6   7   8
Тема 9:^ РЕГУЛЯРНЫЕ ТИПЫ: МАТРИЦЫ

9.1*. Одинаковы ли типы array [1..15.0..3] of char и array [1..15] of array [0..3] of char?

9.2 type строка = аrrау [1..20J of char;

матр1 = аrrау [1..10] of строка;

матр2=аггау [I.. 15,1..20] of char;

var А:матр1; В:матр2;

Указать типы переменных А, А|3], А[9|[18], A[1,I], В, В[15], В[3,3] и В[10][16].

9.3* var А, В:аrrау [1..15,0..8] of real; t:boolean;

Какие из указанных операции допустимы в Паскале?

а) А:=В; б) A:==A+B; в) t:=A<>B;

г) read(A); д) A[l]:=A[15]; e) A[2,3]:=B[4][8]+B[1,1]

9.4* Программа. Ввести квадратную вещественную матрицу 4-го порядка, элементы которой заданы для ввода построчно; и распечатать ее по столбцам.

9.5* const n=20;

var A,B,C:array [l..n,l..n] of real;

x,y:array [t..n] of real;

Вычислить:

a) C=A+B; б) y=Ax; в) C=AB;

г) B=BT (транспонировать).

9.6* var C,D:array [0..9,—5..3] of integer; t:boolean;

Переменной t присвоить значение true, если массивы С и D равны, и значение false иначе.

9.7 Программа. Даны натуральное п и (построчно) элементы квадратной вещественной матрицы А 5-го порядка. Вычислить n-ю степень этой матрицы 1А, А32 А и т. д.).

9.8* type vector=array [1..10] of real;]

tablel=array [1..8] of vector;

table2=array [1..8,1..10] of real;

var x:vector; A:tablel; B:table2;

Какие из указанных ниже операторов присваивания неверны?

а) А:=В; б) А[1]:=А[8] в) В[3]:=А[3];

. г) В[1]:=В[8]; д) x:=A[5]; e) В[5]; = х

9.9 type вектор = array [1..20] of integer;

матрица = аrrау [1..20] of вектор

var А: матрица; х: вектор;

B:array [1..20,1..20] of integer;

Выписать фрагмент программы для решения следующей задачи:

а)* нечетные строки матрицы А заменить на х;

б) четные столбцы матрицы А заменить на х;

в)* первые шесть строк массива В заменить на х;

г) в матрице А поменять местами 1-ю и 2-ю строки, 3-ю и 4-ю строки, …,19-ю и 20-ю строки (воспользоваться х как вспомогательным массивом);

д) аналогичным образом поменять местами строки в В.
9.10. Программа. Дана (построчно) вещественная матрица размером 7x4. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.

9.11* type точка = аrrау [(х,у.)] of real;

var M:array [1..40] of точка; d:real;

Рассматривая элементы массива М как координаты точек на плоскости, найти d—наибольшее расстояние между этими точками,

9.12 type страна = (Алжир, Египет, Заир, Камерун, Конго, Ливия, Мали, Нигер, Судан, Чад, Эфиопия);

var соседи: array [страна, страна] of boolean;

с:страна;

Элемент соседи[а, Ь] равен true, если страны а и Ь имеют общую границу, и равен false иначе. Определить с—страну, имеющую наибольшее число соседей среди перечисленных стран.

9.13* type остров =(Барбадос,Гаити,Гренада,Куба,Мартиника,Ямайка); месяц = (янв,фев,мар,апр,май,июн.июл.авг,сен,окт,ноя,дек);

var t:array [oстров, месяц] of real;

i:остров; m:месяц;

Элемент t[x,y] означает среднемесячную температуру на острове х в месяце у. Определить, какой месяц (т) и на каком острове (i) самый холодный.

9.14* var A:array [1..9.1..9] of real; s:real;

Найти s — сумму элементов из заштрихованной области массива А (рис. 3).

9.15 var D:аrrау [1..10,1..10] of real; s:real;

Вычислить

г

9.16 var A:array [1..10,1..10] of integer;
Заполнить массив А следующим образом;

а) б) в)

9.17 var A:array [1..6,1..9] of real;

х:аrrау [1..9] оf real;

Заполнить массив А по следующему правилу:- Аij=xij.

9.18 type месяц =(янв,фев,мар,апр,май,июи,июл,авг,сен,окт,ноя,дек);
дн =(пн,вт,ср,чт,пт,сб,вс,нет);
календарь=аrrау [месяц,1..31] of дн;
var К:календарь;

Заполнить календарь К соответствующими днями недели (для несуществующих дат указать нет) при условии, что год невисокосный и 1 января—понедельник (К[яне,1]: = пн; К[янв,2]:=вт; ...; К[фев,29]:=нет; ...).

9.19 var A:packed array [1..20,1..20] of boolean;

B:packed array [1..19,1-19] of boolean;

n,k:l..2O;

Получить массив В из массива А удалением п-й строки и А-го столбца.

9.20 var A:array [1,.15,1..20] of integer;

b:array [1..15] of boolean;

По массиву А получить массив b, присвоив его k-му элементу значение true, если выполнено указанное ниже условие, н значение false иначе:

а)* все элементы k-го столбца массива А нулевые;

б) элементы k-й строки массива А упорядочены по убыванию;

в) k -я строка массива А симметрична.

9.21 const п=8; т=12;

var k:integer;

С:аrrау [l..n,l..m] of integer;

Определить k—количество «особых» элементов массива С, считая элемент «особым», если:

а) он больше суммы остальных элементов своего столбца;

б) в его строке слева от него находятся элементы, меньшие его, а справа — большие.

9.22 var k:integer;

С: аrrау [1„13,1..18] of char;

Определить k—количество различных элементов массива С (т.е. повторяющиеся элементы считать один раз).

9.23 Программа. Дана вещественная матрица размером 20x30. Упорядочить ее строки по неубыванию:

а)* их первых элементов;

б) суммы их элементов;

в) их наибольших элементов.

9.24 Имеется таблица Т результатов некоторого шахматного турнира, в котором участвовало п шахматистов (п>2):

Т:аrrау[1..n,1..n] of (B,H,П,Х),

где T[i,j]=B, если i-й участник выиграл j-го (при этом Т[i,j]=П), T[i,j]=H, если i-й и j-и участники сыграли вничью, и T[i,i]=X. Возможный вид таблицы (при я=3):



За выигрыш дается I очко, за ничью—0.5 очка, за проигрыш—0.5 очков. Выдать на печать номера участников в порядке невозрастания набранных ими очков.

9.25 type имя=(Анна,...,Юрий);

родство= (сын,дочь,отец,матъ,нет);

var TP:array [имя,имя] of родство;

И,ВД:имя; k:integer;

На основе (непротиворечивой) таблицы родства ТР (ТР[х,у]=нет, если у не является ни родителем, ни ребенком х'а, ТР[х,у]=сын, если у—сын х'а, и т. и.) при­своить переменной:

а)* В — имя одной (любой) из внучек человека с именем И, если такие есть;

б) Д—имя одного (любого) из дядей человека с именем И, если такие есть (дядями считать только братьев родителей);

в) k—количество всех кузин и кузенов (двоюродных сестер и братьев) человека с именем И.

9.26 const n=256;

type screen=packed array [l..n, l..n] of 0..1;

var S:screen;

Преобразовать массив S, осуществив поворот элементов вокруг его центра на 90° против часовой стрелки.

9.27 Программа. Определить, является ли заданная целая квадратная матрица 10-го порядка симметричной (относительно главной диагонали).

  1. Программа. Элемент матрицы назовем Седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером 10x15 напечатать индексы всех ее седловых точек.

  2. Программа. Дана вещественная матрица размером 7x7, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.

  3. Программа. Определить, является ли заданная целая квадратная матрица 10-го порядка ортонормированной, т. е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1.

  1. Программа. Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом, т. е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.

  2. Программа. Дана непустая последовательность слов из строчных латинских букв; слова разделяются запятыми, за последним словом-точка. Среди всех пар аi и bi,-, где ai,—первая, а Ьi-—последняя буквы i-го слова последовательности, определить наиболее часто встречающуюся пару.

9.33Программа. По заданным коэффициентам а11 a12, …,a1n, a22, a23, …, a2n,…, ann

(n=20, aii≠0) и правым частям Ь1, Ь2, …, Ьп найти решение «треугольной» системы линейных уравнений:



9.34Программа. По заданным коэффициентам Aij и правым частям Ьi решить систему линейны уравнений

(i=1, 2, ..., п; n=10),

считая, что ее определитель отличен от 0. (Рекомендация; систему предварительно привести к «треугольному» виду.)

  1. Программа. Даны координаты л векторов n-мерного линейного пространства (n=7). Определить, являются ли они линейно независимыми.

  2. Программа. Дана квадратная матрица n-го порядка (n—6). Найти матрицу, обратную ей, или установить, что такой не существует. (Замечание: если линейными преобразованиями строк привести заданную матрицу к единичной, то этими же преобразованиями единичная матрица будет приведена к искомой обратной матрице.)

Тема 10: ^ РЕГУЛЯРНЫЕ ТИПЫ: СТРОКИ

10.1*. Какие из следующих типов являются строковыми, а какие нет и почему?

const n=20;

type а=arrау [1 ..30] of char;

b=packed array [l..n] of char;

c=packed array [0..n] of char;

d=packed array ('1’..'9'] of char;

e=packed array [l..n, l..n] of char;

f=packed array [l..10].of ‘a’..’z’;

g=packed array [1..1] of char;

10.2* const n=5;

var al,a2;packed array [l..n] of char;

bl,b2:array [l..n] of char;

c:packed array [1..5] of char;

Какие из указанных ниже операций допустимы в Паскале?

a) a1:=a2; б) Ь2:=b1; в) al:=bl; г) с:=а2;

д) а2:='b+b2'; е) b1: = '12345';

ж) c:='abc'; з) al
к) а2>с; л) с> = '12345'; м) al <>'**';

н) read(c); о) write(al,'=',a2); п) writeln(bl)

10.3* Программа. Дана последовательность из 60 литер. Напечатать эту последовательность дважды, в двух строках.

10.4* type на6ор=аrrау [1..8J]of char;

слово=расked array [1.8] of char;

var a1:array [1..20] of набор;

a2:array [1 ..30] of слово;

kl, k2:integer;

Подсчитать k1—количество наборов массива al, совпадающих с его первым набором, и k2—количество слов массива а2 совпадающих с его первым словом.

10.5 type слово=packed array [1..5] of char;

список=аrrау [1 ..60] of слово;

var С:список;

Напечатать:

а)* все слова из списка С, отличные от слова hello;

6) то слово из списка С, которое лексикографически (по алфавиту) предшествует всем другим словам этого списка (считать, что все слова различны);

в)* текст, составленный из последних литер всех слов списка С;

г) все слова из списка С, содержащие ровно две буквы d.

10.6*. var s:packed array [1..6] of char;

Во входном файле input задано от 1 до 6 букв, за которыми следует точка. Ввести эти буквы и записать их в начало строки s, дополнив конец этой строки пробелами.

10.7. Программа. Даны два различных слова, в каждом из которых от 1 до 8 строчных латинских букв и за каждым из которых — пробел. Напечатать эти слова в алфавитном порядке. (Считать, что литера «спробел» предшествует любой литере-букве.)

10.8*. type color=(red,blue,green,yello, blaek.white);

var x:color;

Во входном файле задана последовательность строчных латинских букв, за которой следует пробел. Если это правильная запись значения типа color, то присвоить его переменной х, иначе сообщить об ошибке.

10.9. Найти ошибки в следующей программе:

program errors (input, output);

const sign='+—*/';

var s:packed array [1 ..10] of char;

i,j,k:integer; begin read(s);

for i:=l to 10 do for j: = l to 4 do

if s[i]=sign[j] then k:—k+1; if k<6 then writeln(s) else writeln(sign) end. 10.10*. const v='aeiou';

type строка=расked array [1..200] of char;

var s:cтрока; k:O..2OO;

Определить, сколько раз (k) в строку s входят литеры, перечисленные в константе v.

10.11* Программа. Дан текст из 60 литер. Напеча­тать только строчные русские буквы, входящие в этот текст.

  1. Программа. Дан текст из строчных русских букв, за которым следует точка. Напечатать этот текст заглавными русскими буквами.

  2. Программа. Дан непустой текст из заглавных русских букв, за которым следует точка. Определить, упорядочены ли эти буквы по алфавиту.

  3. Программа. Напечатать в алфавитном порядке все различные строчные русские буквы, входящие в заданный текст из 200 литер.

10.15 type строка=packed array [1...80] of char;
var s:строка

Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы. Напечатать эту строку, предварительно преобразовав ее следующим образом: .

а) все вхождения abc заменить на def;

б)* удалить первое вхождение w, если такое есть (образовавшуюся «дыру» заполнить последующими буквами, а в конец добавить пробел);

в) удалить все вхождения th;

г)* заменить на ks первое вхождение х, если такое есть;

д) после каждой буквы q добавить букву u;

е) заменить все вхождения ph на f, а все вхождения ed на ing.

10.16 Программа. Дана последовательность, содержащая от 1 до 30 слов, в каждом из. которых от 1 до 5 строчных латинских букв; между соседними словами —запятая, за последним словом—точка. Напечатать:

а) эту же последовательность слов, но в обратном порядке;

6) те слова, перед которыми в последовательности на­ходятся только меньшие (по алфавиту у слова, а за ними — только большие;

в) эту же последовательность слов, но удалив из нее повторные вхождения слов;

г) все слова, которые встречаются в последовательности по одному разу;

д) все различные слова, указав для каждого из них число его вхождении в последовательность;

е) все слова в алфавитном порядке.

10.17 Программа Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом—точка. Напечатать, те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству:

а) слово симметрично;

б) первая буква слова входит в него еще раз;

в) буквы слова упорядочены по алфавиту;

г) слово совпадает с начальным отрезком латинского алфавита (a, ab, abc и т. д.); учесть, что в диапазоне ‘a’..’z’ могут быть литеры, отличные от латинских букв;

д) слово совпадает с конечным отрезком латинского алфавита (z, yz, xyz и т. д.);

е) длина слова максимальна;

ж) в слове нет повторяющихся букв;

з) каждая буква входит в слово не менее двух раз;
и) в слове гласные буквы (а, е, i, о, u) чередуются с согласными.

10.18 Программа. Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами—не менее одного пробела, за последним словом—точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу:

а) перенести первую букву в конец слова;

б) перенести последнюю букву в начало слова;

в) удалить из слова первую букву;

г) удалить из слова последнюю букву;

д) удалить из слова все последующие вхождения первой буквы;

е) удалить из слова все предыдущие вхождения последней буквы;

ж) оставить в слове только первые вхождения каждой буквы;

з) если слово нечетной длины, то удалить его среднюю букву.

  1. Программа. Заданное целое число от 1 до 1999 напечатать римскими цифрами.

  2. Программа. Дан текст из заглавных латинских букв, за которым следует пробел. Определить, является ли этот текст правильной записью римскими цифрами целого числа от 1 до 999, и, если является, напечатать это число арабскими цифрами (в десятичной системе).

  3. Программа. Даны две литеры—латинская буква (от а до h) н цифра (от 1 до 8), например а2 или g5. Рассматривая их как координаты поля шахматной доски, на котором находится ферзь, нарисовать шахматную доску, пометив крестиками все поля, которые «бьет» этот ферзь, и ноликами все остальные поля.

10.22. Решить предыдущую задачу для шахматного коня.

10.23. Известно, что астрологи делят год на 12 периодов и каждому из них ставят в соответствие один из знаков Зодиака:

23.7—22.8 —Лев 20.1 – 18.2 - Водолей

23.8—22.9 —Дева 19.2 – 20.3 - Рыбы

23.9—22.10 —Весы 21.3 – 19.4 - Овен

23.10—22.11 —Скорпион 20.4 – 20.5 - Телец

23.11—21.12 —Стрелец 21.5 - 21.6 - Близнецы

22.12—19.1 —Козерог 22.6 – 22.7 – Рак

Написать программу, которая вводит дату некоторого дня года и печатает название соответствующего знака Зодиака.

10.24 Программа. Дан текст из 60 литер. Напечатать этот текст, подчеркивая (ставя минусы в соответствующих позициях следующей строки) все входящие в него заглавные и строчные русские буквы.


  1. Программа. Дана последовательность, содержащая от I до 90 слов, в каждом из которых от 1 до 10 строчных русских букв; между соседними словами—не менее одного пробела, за последним словом—точка. Напечатать эти слова по алфавиту.




  1. Программа. Напечатать таблицу умножения шестнадцатеричной системе счисления.

Тема 11: ^ ФУНКЦИИ И ПРОЦЕДУРЫ

11.1 var x,y,z:real;

Вычислить z=(signх+signу)-sign(х+у), где

при а=0

При решении этой задачи:

а) не использовать функцию sign;

б)* определить и использовать функцию sign.

11.2* Программа. По вещественному х вычислить величину

sh(x)*tg(x+1)- tg2(2+sh(x-1))

11.3* type страна = (Австрия, Гана, Италия, Перу, США, Швеция);

континент=(Америка, Африка, Европа);

var х,у:страна; t:boolean;

Описать функцию конт(s), определяющую континент, на котором находится страна s, и использовать ее для изменения значения переменной t на противоположное, если страны х и у находятся на разных континентах.

11.4* type натур=l..maxint;
var a,b:real; t:натур;

Описать функцию степень(х,, п) от вещественного х и натурального п, вычисляющую (через умножение) величину Xn, и использовать ее для вычисления Ь=2.7k+(а+1)-5.

11.5. Программа. Даны три натуральных числа. Определить их наибольший общий делитель.

11.6 type натур=1..mахint;
var m, n:натур;

function НОД(а,b:натур): натур;

begin while а<>b do

if a>b then a:=a—b

else b:=b—a;

НОД:=а

end;

а)* Определить, что будет выдано на печать:

m:=8; n:=6; writeln(НОД(m,n), m,n);

б) Объяснить, почему при вычислении ^ Н0Д(т, n) не меняются значения переменных т и п, хотя в теле функции оба параметра изменяют свое значение.

11.7 Указать ошибки в описании функции:

a) function f(a:'a'..'z'):integer;

begin f:=ord(a)—ord('p');

.if f<0 then f:=—f end;

б) function g(k:integer):0..maxint;

var i,s:0..maxint;

begin s: = 0;

for i:=l to k do s:=s+sqr(i) end;

в) function h(x:integer):integer;

begin h(x):=(sqr(x)+x)/2 end

11.8* Программа. Даны отрезки a, b, с и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника. (Определить процедуру петлощ(х, у, г), печатающую площадь треугольника со сторонами х, у и г, если такой треугольник существует.)

11.9 var c,d:integer;

procedure P(x,y:integer);

begin y:=x+l end;

procedure Q(x:integer; var y:integer);

begin y:=x+l end;

procedure R(var x,y:integer);

begin y:=x+1 end;

а) Для каждой из этих процедур указать, какие из ее параметров являются параметрами-значениями, а какие — параметрами-переменными.

б)* Определить, что будет выдано на печать:

c:=2; d:=0; P(sqr(c)+c,d); writeln(d);

c:=2; d:=0; Q(sqr(c)+c,d); writeln(d);

Почему при изменении в процедуре параметра - значения соответствующий фактический параметр не меняет своего значения? Что надо сделать, чтобы он менял значение?

в)* Допустимы ли обращения R(sqr(c)+c, d) и R(c,d)? Почему невыгодно объявлять параметр, не меняющийся в процедуре, параметром-переменной?

11.10 Пусть процедура сокр(а,b,р,q) от целых параметров (b≠0) приводит дробь а/b к несократимому виду p/q

а) Какие из параметров этой процедуры обозначают исходные данные для нее, а какие—результаты? Какие параметры следует объявить параметрами-значениями, а какие—параметрами-переменными?

б)* Допустимы ли обращения coкp(k+1, 14,n,7) и conp(k,sqrt(36),k,n), где k и n—целые переменные?

в)* Описать данную процедуру и использовать ее для приведения дроби 1 + 1/2+1/3+…+1/20 к несократи­мому виду c/d.

11.11 Пусть процедура maxmin(x,y) присваивает параметру х большее из вещественных чисел x и у, а параметру у—меньшее.

а) Какие из параметров этой процедуры обозначают исходные данные для нее, а какие—результаты? Какие параметры следует объявить параметрами-значениями, а какие—параметрами-переменными?

б)* Допустимы ли обращения maxmin(5.2,sin(z)) и maxmin(z,k), где z—вещественная переменная, a k—целая?

в)* Описать данную процедуру и использовать ее для перераспределения значении вещественных переменных а, b и с так, чтобы стало а≥b≥с.

11.12 const n=1000;

.type вектор=аrrау [1..n] of real;

var а,b,с,d:вектор;

Пусть процедура sum(x,y,z) присваивает вектору z сумму векторов х и у.

а) Объяснить, почему параметры х и у, хотя они и не обозначают результаты работы этой процедуры, невыгодно объявлять параметрами-значениями.

б)* Описать данную процедуру и использовать ее для вычисления d=a+b+c.

11.13 Для каждой из следующих задач ответить на вопросы:

Какую подзадачу приходится решать в ней несколько раз? Как следует описать решение этой подзадачи — как функцию или как процедуру? Сколько у этой функции или процедуры параметров? Каков их смысл? Какие из них—параметры-значения, а какие—параметры-переменные?

Описать данную функцию или процедуру и с ее помощью решить задачу.

11.15 Программа. Найти сумму кубов всех корней уравнения

ехзπх2-(2е+1 )x+2π=0

(π=3.1415927, е=2.7182818), вычисленных с точностью 0.0001.

  1. Программа. Даны длины а, b и с сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. (Замечание: длина медианы, проведенной к стороне а, равна )

  2. Программа. Даны три слова, в каждом из которых от 1 до 6 строчных латинских букв и за каждым из которых следует пробел. Напечатать эти слова в алфавитном порядке.

11.18* Программа. По заданным вещественным числам a0,a1,…a30, b0, b1,…,b30, c0, c1,…,c30 ,, x, y, z вычислить величину



11.19 Программа. По заданным 20-элементным целым массивам хиу вычислить



11.20 Программа. По заданным 50-элементным вещественным массивам a, b и с вычислить



  1. Программа. Даны 30-элементные вещественные векторы х, у и z. Вычислить величину (а,a)—(b,с), где a обозначает тот из этих векторов, в котором самый большой минимальный элемент (считать, что такой вектор единственный), b и с обозначают два других вектора, а(p,q)—скалярное произведение р и q.

  2. Программа. Даны две квадратные вещественные матрицы 10-го порядка. Напечатать квадрат той из них, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна.

11.23. Найти ошибки в следующей программе:

а) program errors (output);

const a='1234';

type string=packed array [1..4] of char;

var b:string;

procedure P(sl:string; var s2:string);

begin writeln(sl,s2) end;

begin P('abcd', 'efgh'); P(a,a)

b:=a; P(b,b) end.

б) program error (output);

type string=packed array [1..3] of char;

var x:string;

procedure Q(c:char; var d:char);

begin d:=succ(c) end;

begin x:='295'; Q(x[l],x[3]); writeln(x) end.

11.24*. Определить, что будет выдано на печать:

program print (output);

type vect=array [1..2] of real;

var a:vect; i:integer;

procedure R(var k:integer; var x:real);

begin k:=2; x:=0 end;

begin a[l]: = l; a[2]:=2;

i:=l R(i,a[i])

writeln(a[1],a[2])

end.

11.25* type сдвиг=1..19;

шкала=packed array [1..20] of

boolean;

Описать процедуру cde(s,k), которая преобразует шкалу s, циклически сдвигая ее элементы на k позиций влево, где k—параметр типа сдвиг.

11.26 const n=15; m=20;

type матрица=аrrау [1..n, 1..m] of real;

Описать функцию Сум(А), вычисляющую величину

X1xn+x2xn-1+…+xnx1

где Xi—максимальный элемент 1-й строки матрицы А.

11.27* type неотриц=0. .maxint;

Описать функцию F(m,n)=n!*m!/(n+m)! где п и т—неотрицательные целые числа. (Определить внутреннюю функцию, вычисляющую факториал.)

11.28*. type вектор=аrrау [1. .20] of char;

Описать процедуру npeoбp(x,y,a,b) от четырех векторов, которая преобразует векторы х и у к следующему виду:

х=(a1г,... 8910,... ,х20),

y=(y1,…,y5,b1,…,b6,y12,…,y16,a1,…,a4)

11.29 type слово=расked= array [1..9] of char;

Описать логическую функцию перестановка (х, y) проверяющую, можно ли, переставив литеры слова х, получить слово у.

11.30 const n=8; m = 13;

type матрица=аrrау [1..n,1..m] of real;

Описать процедуру swap(AB), Меняющую местами максимальные элементы матриц А и В. (Считать, что в каждой матрице только один максимальный элемент.)

11.31 const n=...; {целая константа > 1}

type число=array [l..n] of '0'..'9';

массив = array [1..40] of число;

Описать процедуру sort(x), упорядочивающую по неубыванию числа массива х следующим методом: все числа из х упорядочить по последней цифре и перенести во вспомогательный массив у; затем числа из у упорядочить по предпоследней цифре (при равенстве этих цифр сохранять упорядоченность по последней цифре) и записать их снова в массив х; далее числа из х упорядочить по третьей от конца цифре и перенести в массив у; и т. д. (Учесть, что, в конце концов числа должны оказаться в х.)

11.32* Перечислить локальные (в том числе формальные параметры) и глобальные имена, используемые в следующей, процедуре:

procedure P(x:vect; var y:integer);

const z='*';

var c:index;

begin y:=0;

for c:=a to b do if x[c]>z then y:=y+1

end

11.33* Что будет напечатано следующей программой?

a) program print (output);

var x,y:char;

procedure P(x:integer);

const y=true;

begin writeln(x,' ',y) end;

procedure Q;

var x:char;

begin x:=succ(y); y:= '*'; writeln(x,' ',y)

end;

begin x: ='a'; y:='5';

P(8); writeln(x' ',y);

Q; writeln(x ' ',y)

end.

б) program print (output);

type string= packed array [1,. 5] of char;

var i: integer; t:string;

procedure P(var s:string)

begin i:=l;

while s[i]<'9' do

begin s[i]:=succ(s[i]); i:=i+1 end

end;

begin i: = l; t:='12945'; P(t);

writeln(t[i]) end.

в) program print (output);

var a,b,c,d:integer;

procedure P(var b:integer; c:integer);

var d: integer;

begin a: =5; b:=6; c:=7; d:=8;

writeln(a,b,c,d) end;

begin a: = 1; b: = 2; c: = 3; d:=4;

P(a,b); writeln(a,b,c,d)

end.

11.34. Найти ошибки в следующем описании процедуры:

procedure errors(var x:boolean);

const char=0; case=l;

type a=(true,false); b=('a','b');

var c:char;

begin if x then x:=(ord(true)=char) and

false end

11.35. type индекс=1. .20;

Матрица=array [индекс,индекс] of real;

Описать функцию max(A,n,k), где А—матрица, а п и k — индексы (nА (рис. 4).

11.36 type table l=array [1.. 10,1.. 10] of integer;

table2=array [1. .20,1. .30] of integer;

Описать процедуру constr(A,B,C,D), которая по матрицам А, В и С типа table1 строит следующую матрицу D типа tabte2:



Где N—нулевая матрица типа table1.

11.37 Программа. Дана непустая последовательность слов, в каждом из которых от 1 до 6 латинских букв;



Рис. 4

между соседними словами — запятая, за последним словом — точка. Напечатать те слова, у которых одинаковые «соседи», т. е. совпадают предыдущее и следующее слова. (Определить процедуру readword(w), которая вводит очередное слово и присваивает его 6-литерной строке w, а запятую или точку присваивает некоторой глобальной переменной.)

  1. Программа. Даны 6-элементные вещественные векторы х и у и квадратные матрицы А, В и С 6-го порядка. Вычислить величину (Ax,By)+(Cx,y)/(x,By).

  2. Программа. Даны три вещественные квадратные матрицы 4-го порядка. Напечатать ту из них, норма которой наименьшая (считать, что такая матрица одна). В качестве нормы матрицы взять максимум абсолютных величин ее элементов.

11.40* Программа. По заданным вещественным числам с и d (cвычислить



Интегралы вычислять приближенно по формуле трапеций при n=20 для первого интеграла и при n =100 для второго:



где h=(b— а)/ n.

11.41 Программа. По заданным 40-элементным вещественным векторам x, у и z вычислить



11.42 Программа. Напечатать в порядке возрастания корни уравнений

1/(12)=х, Зex+x=0 и х*1n(1+х)=0.5,

вычисленные с заданной точностью ε>0.

11.43 const n=20;

type вектор=array [l..n] of real;

Описать процедуру изм(х,y,z), которая в том из векторов х, у и z, где больше всего отрицательных элементов (считать, что такой вектор один), все его положительные элементы заменяет: на их кубы—если это вектор х или вектор г и на их обратные величины—если это вектор у.

11.44* Определить, что будет выдано на печать (считать, что операнды вычисляются слева направо);

program sideeffect (output);

var a, b:integer;

function f(x:integer):integer;

begin f:=x; a:=O end;

function g(var xiinteger)nnteger;

begin g:—x; x:=0 end; begin a' = l; write(a~ff(a)); a: = l; write(f(-a)-M)!

b:=2; writeln(g(b)=g(b))

end.

11.45 Привести примеры, когда в Паскале не выполняются равенства у=у, y+y=2*y, b and b=b.

11.46* Описать функцию next без параметров, которая считывает из входного файла первую литеру, отличную от пробела, и объявляет ее своим значением. Использовать эту функцию для подсчета k—количества отличных от пробела литер текста, который задан во входном файле и за которым следует точка.

11.47

const d=100; m=5;

type строка=расked array [l..d] of char;

подстрока=расked array [l..m] of char;

позиция=1. .d;

var x:строка; у.z:подстрока;

Описать логическую функцию noucк(s,ss,k,n), проверяющую, входит ли подстрока ss в ту часть строки s, которая начинается с k-й позиции, и, если входит, присваивающую параметру л номер позиции, с которой начинается первое вхождение ss в эту часть строки s.

Используя данную функцию, заменить в строке х все вхождения подстроки у на подстроку z.

  1. Программа. Даны координаты вершин двух треугольников. Определить, какой из них имеет большую площадь.

  2. Программа. Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника. (При определении расстояний учесть, что площадь треугольника вычисляется и через три его стороны, и через основание и высоту.)

  1. Программа. Три прямые на плоскости заданы уравнениями akx+bky=ck (k=1, 2, 3). Если эти прямые попарно пересекаются и образуют треугольник, тогда найти его площадь.

  2. Программа. Найти наименьшее общее кратное четырех заданных натуральных чисел.

11.52 Программа. Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (таковы, например, числа 41 и 43). Напечатать все пары «близнецов» из отрезка [n,2n], где п—заданное целое число, большее 2.

11.53. Программа. Два натуральных числа называются «дружественными», если каждое из них равно сумме всех деятелей другого, за исключением его самого (таковы, например, числа 220 и 284). Напечатать все пары «дружественных» чисел, не превосходящих заданного натурального числа.

  1. Программа. Даны коэффициенты многочленов Р(х) и Q(x) 15-й степени и дано вещественное число а. Вычислить величину P(a+Q(a)P(a+1)).

  2. Программа. По вещественному числу с>0 вычислить величину



Корни вычислять с точностью ε=0.0001 по следующей итерационной формуле:

y0=1; yn+1=yn+(x/ynk-1-yn)/k (n=0, 1,2….),

Приняв за ответ приближение уn+1 для которого │уn+1-yn│<ε.

11.56 Программа. По вещественным числам ε>0 и t вычислить с точностью е величину



Для вычисления корней использовать следующий ряд Тейлора:



(│x│≤1 a>0)

  1. Программа. Даны три целые матрицы размером 9x4. Напечатать ту из них, где больше нулевых строк (если таких матриц несколько, напечатать их все).

  2. Программа. Даны натуральное число р и вещественные квадратные матрицы А, В и С 4-го порядка. Получить (АВС)?

11.59 Программа. Даны вещественные матрицы А, В и С размером 10x20. Вычислить величину



где .

    1. Программа. Даны две целые квадратные матрицы 10-го порядка. Определить, можно ли отражениями



Рис. 5

относительно главной и побочной диагоналей преобразовать одну из них в другую.

11.61 Программа. Даны вещественные числа а, b и ε(а<6, ε>0). С точностью ε вычислить интеграл (см.. упр. 5.34)



где h(x,y)=e-yyx-1, g(x)=1 f(x)=1+x2

11.62 Программа. С заданной точностью ε>0 вычислить площадь заштрихованной фигуры, показанной на рис. 5.

  1. Программа. В точках 1, 2,..., k, где k—заданное целое число от 2 до 70, напечатать (по отдельности) графики следующих функций:

(φ(n)—количество целых чисел от 1 до п, взаимно простых с числом n;

r(n)—количество положительных делителей числа п;

π(п)—количество простых чисел, не превосходящих n.

11.64 Программа. Напечатать все цифры десятичной записи чисел 2500 и 1!+2!+3!+...+ 100!. (Рекомендация: представить «длинные» натуральные числа в виде массивов из цифр и реализовать нужные операции над ними.)

1.1.65 Решить предыдущую задачу, но разбивая «длинные» числа не на отдельные цифры, а на группы цифр (например, по 5 соседних цифр).

11.66 Программа. Дано я вещественных чисел (n= 100). Упорядочить их по неубыванию методом фон Нейманах завести два массива A и В и записать исходные числа в А; упорядочить пары соседних чисел (A1 и A2 A3 и А4 и т. д.) и записать их в В; взять из В по две соседние упорядоченные пары и, слив их в упорядоченные четверки, снова записать в А; затем каждые две соседние четверки из В слить в упорядоченные восьмерки и перенести в А; и т. д.

11.67 Программа. Даны целое п от 2 до 20 и вещественное ε>0. Найти с точностью е все корни n-го многочлена Чебышева Тп(х), определяемого формулами

То(x)=1; Т1(х)=х; Tk(x)=2xTk.1{x)-Tk-2(x) (k=2, 3,...).

(Замечанием многочлен Tk(x) имеет k различных корней в интервале (—1,1); если x12<…k—корни многочлена Tk(x), то многочлен Tk+l(x) имеет по одному корню в каждом из интервалов (—1,x1), 1х2), ..., (хk,1).)

1   2   3   4   5   6   7   8



Схожі:

Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания и задания по дисциплине «Статистика. Часть 1» для студентов экономических специальностей всех форм обучения печ
Статистические показатели, Статистическое наблюдение, Сводка и группировка статистических данных, Средние величины Методические указания...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания для самостоятельной подготовки студентов всех специальностей запорожье, зиэит, 2003
Защита населения в чрезвычайных ситуациях мирного и военного времени / Методические указания для самостоятельной работы студентов...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к подготовке и защите магистерских работ по специальности
Методические указания к подготовке и защите магистерских работ по специальности 050206 «Менеджмент внешнеэкономической деятельности»...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодичні вказівки до них. Для студентів ycix спеціальностей ycix форм навчання
Методические указания и задания по курсу «Введение в профессию» для слушателей подготовительных курсов всех форм обучения
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к выполнению курсовой работы по дисциплине «Основы маркетинга» для студентов 2 курса дневной формы обучения
Бобрушева В. В. Методические указания к выполнению курсовой работы по дисциплине «Основы маркетинга» для студентов 2 курса дневной...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания и контрольные задания по дисциплине «основы программирования и алгоритмические языки» для студентов заочной формы обучения
Методические указания и контрольные задания по дисциплине «основы программирования и алгоритмические языки» для студентов заочной...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания рассмотрены и утверждены на заседании кафедры Технология машиностроения
Технологические методы проектирования и производства заготовок деталей машин для студентов специальностей 09. 0202, 09. 0203 дневной...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания по оформлению технической и научной документации для студентов специальности
Автоматизация проектирования компьютерных систем. Методические указания по курсовому проектированию для студентов специальности “Компьютерные...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к практическим занятиям №1÷7 по дисциплине: "Размерный анализ технологических процессов" для студентов специальности 09. 0202
Размерный анализ технологических процессов для студентов специальности 09. 0202 «Технология машиностроения» дневной и заочной форм...
Методические указания для студентов всех форм обучения Киев -2006 Тема1 : числовые типы. Оператор присваивания iconМетодические указания к практическим занятиям и разделу курсового проекта по дисциплинам «Детали машин» и«Прикладная механика» для студентов технических специальностей
«Детали машин» и «Прикладная механика» для студентов технических специальностей дневной и заочной форм обучения/Перераб. В. И. Пахалюк,...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи