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

1 курс 1сем 18вариант

.docx
Скачиваний:
6
Добавлен:
01.04.2014
Размер:
123.93 Кб
Скачать

«Белорусский Государственный Университет

Информатики и Радиоэлектроники»

Вычислительные машины системы и сети

Контрольная работа №1

По предмету «ОАиП»

Студента гр.№

Вариант - 18

Минск 2010

Задание 18 (1)

Условие:

Заданны массивы А[1..n] и B[1..n]. Необходимо найти такие индексы i0 и j0, что ai0 + bjo = max (ai +bj), где 1 ≤ I ≤ n, 1 ≤ j ≤ m,

I < j.

Решение: Задаем массивы A и В. Затем ищем i0 и j0 чтоб ai0 + bjo = max (ai +bj).

Блок-схема.

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

#include <conio.h>

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

int n,m,i0,j0,max, *a, *b;

printf("Insert n and m: ");

scanf("%d%d",&n,&m);

a=new int[n];

b=new int[m];

printf("Insert n digit to array A\n");

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

{

scanf("%d",&*(a+i));

}

printf("Insert m digit to array B\n");

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

{

scanf("%d",&*(b+i));

}

max=*(a+0)+*(b+0);

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

{

for(int j=0; j<m; j++)

{

int temp=*(a+i)+*(b+j);

if(temp>max)

{

i0=i;

j0=j;

max=temp;

}

}

}

printf("i0=%d, j0=%d, max=%d\n",i0+1,j0+1,max);

getch();

delete []a;

delete []b;

return 0;

}

//---------------------------------------------------------------------------

Результат работы программы:

Задание 18 (2)

Условие:

Ввести строку и определить наибольшее записанное в этой строке целое число ( без учета знака числа ). Например, для строки <<sdfvgsd1.9fdmjgvb15.25dnj05>> наибольшее целое число 15. Результат вывести на экран. Стандартных функций для работы со строками не использовать.

Блок-схема:

//---------------------------------------------------------------------------

#include <stdio.h>

#include <conio.h>

#include "math.h"

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

char string[100], digit[100];

int ends, max=0;

puts("Insert string (max length=100):");

gets(string);

ends=0;

while(*(string+ends)!='\0')

{

ends++;

}

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

{

if(*(string+i)=='0' ||

*(string+i)=='1' ||

*(string+i)=='2' ||

*(string+i)=='3' ||

*(string+i)=='4' ||

*(string+i)=='5' ||

*(string+i)=='6' ||

*(string+i)=='7' ||

*(string+i)=='8' ||

*(string+i)=='9')

{

int j=0;

while(true)

{

*(digit+j)=*(string+i);

j++;

i++;

if(*(string+i)!='0' &&

*(string+i)!='1' &&

*(string+i)!='2' &&

*(string+i)!='3' &&

*(string+i)!='4' &&

*(string+i)!='5' &&

*(string+i)!='6' &&

*(string+i)!='7' &&

*(string+i)!='8' &&

*(string+i)!='9')

{

*(digit+j)='\0';

int temp=0;

for(int p=0;p<j;p++)

{

temp+=(*(digit+p)-48)*pow(10,j-p-1);

}

if(temp>max)

{

max=temp;

}

break;

}

}

}

}

printf("Max number=%d",max);

getch();

return 0;

}

//---------------------------------------------------------------------------

Соседние файлы в предмете Основы алгоритмизации и программирования