Консультация № 172266
17.09.2009, 12:14
0.00 руб.
0 7 2
Здравствуйте, уважаемые Эксперты.Подскажите пожалуйста ответы на эти задачи :

1. Дан текст.Выяснить является ли этот текст идентификационным или десятичной записью целого числа.Организовать печать соотвествующей информации.При составлении программы использовать внешнюю подпрограмму.
2.Даны массивы чисел { Ак }, k=1...18 и { Bi }, i=1...10. Найти сумму элементов этих массивов,значения которых больше заданного числа Р. При нахождении суммы использовать подпрограмму.
3.Дан массив b1,b2...b15. Найти количество тех элементов массива, значения которых попадают в заданный интервал. При составлении программы использовать подпрограмму,находящейся в другом модуле.

Обсуждение

давно
Академик
320937
2216
17.09.2009, 16:27
общий
это ответ
Здравствуйте, Ink0git0. Ответ на 3й вопрос. Проект состоит из 3х файлов: main.cpp, between.h (прототип функции between), between.cpp (реализация функции between). Счет в массиве начинается с 0. MS Visual C++ 6.


Приложение:
// main.cpp
// 3.Дан массив b1,b2...b15.
// Найти количество тех элементов массива,
// значения которых попадают в заданный интервал.
// При составлении программы использовать подпрограмму,
// находящейся в другом модуле.
#include <iostream>
#include "between.h"
using namespace std;

int main()
{
const int size=15;
int arr[size];
int i;
int lower; // нижняя граница интервала
int upper; // верхняя граница интервала
int count; // количество элементов массива в заданном интервале

cout << "lower=";
cin >> lower;

cout << "upper=";
cin >> upper;

for (i=0; i<size; ++i)
{
cout << "[" << i << "]=";
cin >> arr[i];
}

for (i=0, count=0; i<size; ++i)
{
if (between(arr[i], lower, upper))
++count;
}
cout << "v interval [" << lower << ", " << upper << "] popadaet " << count << " elementov" << endl;
return 0;
}

// between.cpp
#include "between.h"

bool between( int elem, int lower, int upper)
{
return ( ( elem >= lower ) && ( elem <= upper ) );
}

// between.h
// прототип функции between
extern bool between( int elem, int lower, int upper );
Неизвестный
17.09.2009, 17:17
общий
это ответ
Здравствуйте, Ink0git0.

Код для решения 2-й задачи.
Компилятор Borland C++ 3.1.

Приложение:
#include <stdio.h>
#include <conio.h>
int to_add(int p, int x)
{
return(x>p?x:0); // возвращает x если x>p, иначе - 0
}
int a[18], b[10], sum=0, p; // в переменную sum будем добавлять все числа большие p или 0.
void main(void)
{
clrscr();
printf("Vvedi p: ");
scanf("%d",&p);
for(int i=0;i<18;i++)
{
printf("Vvedi a[%d]: ",i+1);
scanf("%d",&a[i]);
sum+=to_add(p, a[i]);
}
for(i=0;i<10;i++)
{
printf("Vvedi b[%d]: ",i+1);
scanf("%d",&b[i]);
sum+=to_add(p, b[i]);
}
printf("Summa elem > %d = %d",p,sum);
getch();
}
Неизвестный
17.09.2009, 17:58
общий
Ink0git0:
Уточните, пожалуйста, формулировку 1-го вопроса. Что означает: "является ли этот текст идентификационным или десятичной записью целого числа?" Не ясно что такое "идентификационный текст"?
Неизвестный
17.09.2009, 18:30
общий
К сожалению не могу уточнить,таков поставлен вопрос в задаче
Неизвестный
17.09.2009, 20:34
общий
Максим Юрьевич:
Скорее всего, речь идет об идентификаторе объекта (имени), то есть буква, буква|цифра. и.т.д. По меньшей мере, так можно предположить
Неизвестный
18.09.2009, 13:10
общий
А если так предположить,то какое решение этой задачи тогда ?
Неизвестный
23.09.2009, 16:54
общий
Ink0git0:
Добрый день!
Ответ на первый вопрос. Проект состоит из трех модулей:
main.cpp; func.cpp; func.h

// Дан текст.Выяснить является ли этот текст идентификационным
// или десятичной записью целого числа.Организовать печать
// соотвествующей информации.При составлении программы
// использовать внешнюю подпрограмму
// MS Visual C++ 6

#include <iostream>
#include "func.h"
using namespace std;

int main()
{
char str[80];
cout << "stroka ";
cin >> str;
if (isnumber(str))
cout << "eto chislo" << endl;
else if (isname(str))
cout << "eto imya" << endl;
else
cout << "ni to, ni dugoe" << endl;
return 0;
}

// func.cpp
// используются библиотечные функции isalpha, isdigit
//
#include <iostream>
#include "func.h"
using namespace std;

bool isnumber(char str[])
{
int i=0;
while ((str[i] != '\0') && isdigit(str[i]))
++i;
return (str[i]=='\0');
}


bool isname(char str[])
{
int i;
if (!(isalpha(str[0])))
return false;
i=1;
while ((str[i] != '\0') && (isalpha(str[i]) || isdigit(str[i])))
++i;
return (str[i]=='\0');
}

// func.h
#ifndef FUNC_H
#define FUNC_H

extern bool isnumber(char str[]);
// число

extern bool isname(char str[]);
// идентификатор буква (английская), буква/цифра
#endif

Форма ответа