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

Министерство общего и профессионального Образования российской федерации

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

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

Кафедра информационных технологий в

Автоматизированных системах

Отчет по лабораторным работам по дисциплине

“Системы программирования” (Язык Си)

Москва 1999

/* Лабораторная работа #1 (Одномерные Массивы)

Даны два одномерных массива целых чисел A и B. Вычислить одномерный массив

C, который содержит:

Неповторяющиеся элементы массива A, которых нет в массиве B

*/

# include<stdio.h>

void main()

{

int a[100],b[100],c[100],n,m,k,i,j,l,flag;

k=0;

printf("Введите кол-ко элементов в массиве А :");

scanf("%d",&n);

printf("Введите %2d элементов в массив А\n",n);

for (i=0;i<n;scanf("%d",&a[i++]));

printf("Введите кол-ко элементов в массиве B :");

scanf("%d",&m);

printf("Введите %2d элементов в массив B\n",m);

for (i=0;i<m;scanf("%d",&b[i++]));

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

{

flag=1;

j=0;

l=0;

while (l<n && flag!=0)

if (a[l]!=a[i] || l==i) l++;

else flag=0;

if (flag!=0)

{

while (flag!=0 && j<m)

{

if (a[i]!=b[j]) j++;

else flag=0;

}

if (flag==1) c[k]=a[i],k++;

}

}

if (k==0) printf("Массив C П У С Т !!!!!!! \n");

else

{

printf("Массив С состоит из %5d элементов\n",k);

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

printf("%3d",c[i]);

}

}

/*Лабораторная работа #2 (Двумерные массивы (с использованием указателей))

В заданном двумерном массиве поменять местами следующие два элемента:

Первый и последний положительные

*/

# include <stdio.h>

main()

{

int a[100][100],n,m,i,j,*first,*second,*x;

first=second=NULL;

printf("Введите количество строк в матрице А :");

scanf("%d",&n);

printf("Введите количество столбцов в матрице А :");

scanf("%d",&m);

printf("Введите матрицу А %dХ%d \n",n,m);

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

{

printf("Введите %d элементов в %d строке\n",m,i+1);

for (j=0;j<m;scanf("%d",&a[i][j++]));

}

printf("Матрица: \n");

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

{

for (j=0;j<m;printf("%6d",a[i][j++]));

printf("\n");

}

for (i=0;i<n||first==NULL&&second==NULL;i++)

for (j=0;j<m||first==NULL&&second==NULL;j++)

{

if (a[i][j]>0)

if (first==NULL) first=&a[i][j];

else

second=&a[i][j];

}

if (second==NULL) printf("Матрица не изменилась !!\n");

else

{ printf("Местами поменялись элементы %2d и %2d\n",*first,*second);

*x=*second;

*second=*first;

*first=*x;

printf("Элементы поменялись %2d и %2d\n",*first,*second);

printf("Теперь матрица выглядит так\n");

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

{

for (j=0;j<m;printf("%6d",a[i][j++]));

printf("\n");

}

}

}

/*Лабораторная работа #3 (Символьные строки. Подпрограммы)

Разработать программу для решения указанной ниже задачи, состоящей

из трех частей. Каждую часть оформить в виде отдельной подпрограммы

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

Задание #1

Даны символьные строки (ввод осуществляется до тех пор, пока не будет

введена пустая строка)

Требуется:

Выделить из каждой строки и напечатать подстроки заключеннные

круглые скобки

Задание #2

Среди выделенных подстрок найти подстроку содержащую максимальную

цепочку из единиц

Задание #3

Преобразовать исходную строку, которой принадлежит найденная подстрока,

следующим образом:

Удалить все символы отличные от русских букв

*/

#include<stdio.h>

#include<string.h>

#include<ctype.h>

void substr(int n,int *n1,char str[][81],char str1[][81],int num[]);

int nomstr(char str1[][81],int n1);

void udal(char *s);