Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
30.04.2013
Размер:
607 Кб
Скачать

Московский Государственный институт электроники и математики

(Технический университет)

Кафедра Вычислительные системы и сети

Отчет по домашней работе

по дисциплине «Программирование на ЯВУ»

Выполнил:

студент группы С-31

Новиков А.Ю.

Вариант 18

Москва, 2009 год

Задание 1.

28. Дана последовательность действительных чисел a1 ≤ a2 ≤ ... ≤ аn. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей

Исходный код программы

#include <math.h>

#include <stdio.h>

int main()

{

float arr[100], b;

int n,i,j,r;

FILE *file;

printf("DZ\n");

printf("Novikov Aleksey C-31\n");

printf("Vstavit' v neub posledovatel'nost' chislo\n");

printf("Chislo elementov posledovatel'nosti \n");

scanf("%d",&n);

printf("Elementy posledovatel'nosti: \n");

for (int i = 0; i < n; i++)

{

printf ("a[%d",i+1);

printf("]= ");

scanf ("%f",&arr[i]);

}

printf("vvedite chislo kotoroe nugno vstavit' \n");

scanf("%f",&b);

i=0;

while (i <= n && b>arr[i])

{

i=i+1;

}

for ( j=n+1; j>=0 && j >= i+1; j--)

{

arr[j] = arr[j-1];

}

arr[i] = b;

n=n+1;

printf("preobrazovannaya posledovatelnost'\n");

for (i=0;i<n;i++)

{

printf(" a[%d", i+1);

printf("]=%g",arr[i]);

}

printf("\n");

printf("Xotite li Vi soxranit' rezultati v fail? (1/0): ");

scanf("%d",&r);

switch (r)

{

case 1:

{

printf("Vvedite im9 faila: ");

char fname[50];

scanf("%s",fname);

file=fopen(fname,"w");

for (i=0;i<n;i++)

{

fprintf(file,"%g ",arr[i]);

}

fprintf(file,"\n");

fclose(file);

}

case 0:

{

return 0;

}

default:

{

return 0;

}

}

}

Блок-схема алгоритма

Листинг программы

Задние 2

Сформировать квадратную матрицу порядка n по заданному образцу

Исходный код программы

#include <math.h>

#include <stdio.h>

int main()

{

int a[100][100],i,j,k,l,n,m,r,z;

FILE *file;

printf("Vvedite chislo strok matrici\n");

scanf("%d",&m);

n=m-1;

for (i=0;i<=n;i++)

{

for (j=0;j<=n;j++)

{

a[i][j]=0;

}

}

l=1;

k=n;

for (i=n;i>=0;i--)

{

for (j=0;j<=k;j++)

{

a[i][j]=j+l;

}

l++;

k--;

}

for (i=0;i<=n;i++)

{

for (j=0;j<=n;j++)

{

printf("%d",a[i][j]);

}

printf("\n");

}

printf("Xotite li Vi soxranit' rezultati v fail? (1/0): ");

scanf("%d",&r);

switch (r)

{

case 1:

{

printf("Vvedite im9 faila: ");

char fname[50];

scanf("%s",fname);

file=fopen(fname,"w");

for (int k=0;k<=n;k++)

{

for (int z=0;z<=n;z++)

{

fprintf(file,"%d ",a[k][z]);

}

fprintf(file,"\n");

}

fclose(file);

}

case 0:

{

return 0;

}

default:

{

return 0;

}

}

}

Блок-схема алгоритма программы

Листинг программы

DZ

Vvedite chislo strok matrici:

<m>

a[1][1]..a[1][m]

.

.

a[m][1]..a[m][m]

Xotite li Vi soxranit' rezultati v fail? (1/0): 0

Vvedite im9 faila

Задача 3

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

Исходный код

#include <math.h>

#include <stdio.h>

void vfail (int rez)

{

FILE *file;

printf("Zapis' rezultata v fail \n");

{

printf("Vvedite im9 faila: ");

char fname[50];

scanf("%s",fname);

file=fopen(fname,"w");

fprintf(file,"NOD= %d\n",rez);

fclose(file);

}

}

void vivod (int a)

{

printf("NOD=%d \n",a);

}

int main()

{

int a,b,c,d,nod,del;

nod=1;

printf("DZ\n");

printf("Novikov Aleksey, C-31\n");

printf("Variant 18\n");

printf("Naiti NOD 4 natural'nix chisel\n");

printf ("Vvedite 4 natural'nix chisla\n");

scanf ("%d %d %d %d",&a, &b, &c, &d);

for (int i=1; i<=a; i++)

{

if (a%i==0 && b%i==0 && c%i==0 && d%i==0)

{

del=i;

}

if (nod<del)

{

nod=del;

}

}

vivod(nod);

vfail(nod);

printf ("Najmite 'Enter' dly vihoda.");

getchar();

return 0;

}

Блок-схема главного алгоритма

Блок-схема алгоритма vivod программы

Листинг программы

DZ

Novikov Aleksey C-31

Variant 18

Naiti NOD 4 natural’nix chisel

Vvedite 4 natural’nix chisla

<a> <b> <c> <d>

Nod=<nod>

Задача 4

Дана строка, содержащая текст, Получить новую строку, заменив в исходной строке все заглавные буквы строчными и наоборот.

Исходный код программы

#include <iostream>

#include <cstdio>

#include <cctype>

int main()

{

char str[100];

printf(" Vvedyte stroku: : \n");

gets(str);

printf( " Ishodnaya stroka: %s\n",str );

for(int i = 0; str[i]; i++)

{

if(islower(str[i])) str[i] = toupper(str[i]);

//else if(isupper(str[i])) str[i] = tolower(str[i]);

}

printf(" Stroka s invertyrovannym regystrom bukv: %s\n",str );

return 0;

}

Блок-схема алгоритма программы

Листинг программы

Vvedite stroku

<str>

Ishodnaya stroka: <str>

Stroka s invertirovannym registrom bukv: <str>

Соседние файлы в папке Сборка