Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Lektsia_5_14_apr (1) / 00 Упр с масс
.pptxВЕРИФИКАЦИЯ ПРОГРАММ
ДВС Лектор - С.А. Ивановский
14.04.2015 |
О схемах программ |
1 |
Упражнения к Лекции 5
Доказательство корректности фрагментов программ с массивами
14.04.2015 |
О схемах программ |
2 |
1. Найти максимум из a[0],…,a[n-1] i=1; max=a[0];
//inv: …
//var: … while (i<n) {
if (a[i] > max) max=a[i]; i++;
} // max – максимум из a[0],…,a[n-1]
2.Бинарный поиск
//Pred: (ALL i: 0<=i<n-1 : a[i]<a[i+1]) int m;
int le = -1; int ri = n-1;
//inv: ...
//var: ...
while (le<ri)
{ m = (le+ri+1)/2; // д.б. le < m <=ri if (arr[m]<x) le = m;
else ri = m-1;
}
i = ri;
// -1<=i<n & a[i]<x<=a[i+1] & le==ri
3. Найти количество общих элементов в двух строго возрастающих массивах a[0..n-1] и b[0..m-1]
i = 0; j = 0; k = 0;
//inv: …
//var: …
while ((i < n) && (j < m)) { if (a[i] < b[j]) i++;
else if (a[i] > b[j]) j++; else // a[i] == b[j]
{i++; j++; k++; }
}//while
//Постутверждение: …
Соседние файлы в папке Lektsia_5_14_apr (1)