Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadachi_avtomatizirovannogo_zacheta.docx
Скачиваний:
1
Добавлен:
20.07.2019
Размер:
52.51 Кб
Скачать

Задачи автоматизированного зачета на последовательности. Осень 2011, 1 курс, 1 поток, 105 гр.

Задача №1.

Вычислить среднее арифметическое непустой последовательности вещественных чисел. Считать, что в последовательности есть хотя бы одно число.

Ответ: одно число – искомое среднее арифметическое n.

#include <stdio.h>

#include <assert.h>

void f101(FILE*, double*);

int main (void) {

FILE* in;

FILE* out;

double result;

out=fopen ("output.txt", "w"); if(out==NULL) return 1;

in=fopen("input.txt", "r"); if(in==NULL) { fclose(out); return 1; }

f101 (in, &result);

fprintf(out, "%lf", result);

fclose(in); fclose(out);

return 0;

}

void f101(FILE* filein, double* y){

double a, s=0.0; int q, n=0;

while( (q=fscanf(filein, "%lf", &a))==1){s=s+a; n=n+1;}

assert(q==EOF);

assert(n>0);

*y=s/n;

return;

}

Задача №2.

Вычислить среднее геометрическое непустой посл-ти вещественных чисел. В последовательности есть хотя бы одно число. Числа неотрицательны.

Ответ: одно число – искомое среднее геометрическое n.

#include <stdio.h>

#include <assert.h>

#include <math.h>

void f102(FILE*, double*, log*);

Int main (void) {

FILE* in;

FILE* out;

double result;

out=fopen ("output.txt", "w"); if(out==NULL) return 1;

in=fopen("input.txt", "r"); if(in==NULL) { fclose(out); return 1; }

f102 (in, &result);

fprintf(out, "%lf", result);

fclose(in); fclose(out);

return 0;

}

void f102(FILE* filein, double* y){

double a, p=1.0; int q, n=0;

while( (q=fscanf(filein, "%lf", &a))==1){p=p*a; n=n+1;}

assert(q==EOF);

assert(n>0);

*y=exp(log (p)/n);

return;

}

Задача №3.

Вычислить среднее гармоническое непустой последовательности положительных вещественных чисел. В последовательности есть хотя бы одно число.

Ответ: одно число – искомое среднее гармоническое n.

#include <stdio.h>

#include <assert.h>

void f103(FILE*, double*);

int main(void) {

FILE* in;

FILE* out;

double result;

out=fopen(“output.txt”, “w”); if (out==NULL) return 1;

in = fopen(“input.txt”, “r”); if (in==NULL) { fclose(out); return 1; }

f103(in, &result);

fprintf(out, “%lf”, result);

fclose(in); fclose(out);

return 0;

}

void f103(FILE* filein, double* y) {

double a, s=0.0; int q, n=0;

while ((q=fscanf(filein, “%lf”, &a))==1) {s=s+(1/a); n++;}

assert (q==EOF);

assert (n>0);

*y=n/s;

return;

}

Задача №4.

Вычислить количество чисел, больших предыдущего, в последовательности вещественных чисел.

Ответ: одно число – искомое количество. Для пустой или одноэлементной последовательности – ответ 0.

#include <stdio.h>

#include <assert.h>

void f104(FILE*, double*);

Int main(void) {

FILE* in;

FILE* out;

double result;

out=fopen(“output.txt”, “w”); if (out==NULL) return 1;

in = fopen(“input.txt”, “r”); if (in==NULL) { fclose(out); return 1; }

f10(in, &result);

fprintf(out, “%lf”, result);

fclose(in); fclose(out);

return 0;

}

Void f102(file* filein, double* y) {

double a, s=0.0; int q, n=0;

while ((q=fscanf(filein, “%lf”, &a))==1) {s=s+(1/a); n++;}

assert (q==EOF);

assert (n>0);

*y=n/s;

return;

}

Задача №5.

Определить, есть ли в последовательности целых чисел данное число Х. В файле с данными сначала записано число Х, а далее за ним записываются элементы последовательности.

Ответ: слово true, если такой элемент есть, и слово false, если такого элемента нет. Для пустой последовательности ответ false.

Задача №6.

В последовательности целых чисел определить номер последнего числа, равного данному числу Х. Нумерация элементов последовательности начинается с единицы. В файле с данными записано сначала число Х, а далее за ним записываются элементы последовательности.

Ответ: одно число – искомый номер, если такой элемент есть, и значение -1, если такого элемента нет. Для пустой последовательности ответ -1.

Задача №7.

Определить, все ли элементы последовательности целых чисел равны между собой.

Ответ: слово yes, если все элементы одинаковы, и слово no в противном случае. Для пустой последовательности ответ yes.

Задача №8.

Определить монотонность последовательности вещественных чисел.

Ответ: 1, если строго возрастающая; -1, если строго убывающая, 0 в противном случае. Для пустой и одноэлементной ответ 0.

Задача №9.

Определить удовлетворяет ли последовательность вещественных чисел данному трехчленному рекуррентному соотношению с точностью е=0.0001. Пусть с1, с2, с3, d – заданные числа и обозначим х1, х2, х3 – 3 любых соседних последовательно идущих элемента последовательности. Тогда должно выполняться неравенство |x1*c1+x2*c2+x3*c3-d| < 0.0001.

Ответ: слово true, если указанное неравенство всегда выполнено, слово false, если неравенство нарушается хотя бы для одной тройки последовательных элементов или если последовательность содержит менее трех членов. В файле данных сначала записаны числа с1, с2, с3, а затем элементы последовательности.

Задача №10.

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

Ответ: одно число – искомое количество. Для пустой последовательности правильный ответ 0.

Задача №11.

Определить общее количество элементов во всех постоянных участках последовательности целых чисел.

Ответ: одно число-искомое количество. Для пустой последовательности ответ 0.

#include <stdio.h>

#include <assert.h>

void f111(FILE*, int*);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]