- •Int main (void) {
- •Int main(void) {
- •Void f102(file* filein, double* y) {
- •Int main(void){
- •Int main (void) {
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void) {
- •Int main(void){
- •Int main(void) {
- •Int main(void) {
- •Int main(void) {
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
- •Int main(void){
Задачи автоматизированного зачета на последовательности. Осень 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*);