Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2011, 12:34   #1
kpo4u
 
Регистрация: 15.12.2011
Сообщений: 4
Печаль Програмирование, нужно переделать задачи c+ pascal

Pусловие:
Напечатать в порядке возрастания корни уравнений , 3ex+x=0, x ln(1+x)=0.5. Определить процедуру нахождения корней уравнения.

программа:
Код:
// 6.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <cmath>

using namespace std;

double f1(double x)
{
	return 1/(1+x*x) - x;
}

double f2(double x)
{
	return 3*exp(x) + x;
}

double f3(double x)
{
	return x*log(1+x) - 0.5;
}

double Middle(double (*f)(double),double xLeft, double xRight, double epsilon)
{
      double xMiddle; 
      while((xRight - xLeft) > epsilon) 
      { 
           xMiddle = (xLeft + xRight) / 2.0; 

           if(f(xLeft) * f(xMiddle) < 0) 
                xRight = xMiddle; 
           else if (f(xRight) * f(xMiddle) < 0) 
                xLeft = xMiddle; 
           else 
                break; 
      } 
  return xMiddle;
}

int _tmain(int argc, _TCHAR* argv[])
{
	system("CLS");
	setlocale(LC_ALL,"Russian");
	double x1 = Middle(&f1,0,10,0.00001);
	double x2 = Middle(&f2,-10,10,0.00001);
	double x3 = Middle(&f3,0,10,0.00001);
	double root[3];
	root[0] = x1;
	root[1] = x2;
	root[2] = x3;
	for (int i = 0; i < 2; i++)
		for (int j = i+1; j <=2; j++)
			if (root[i] > root[j])
			{
				double swap = root[i];
				root[i] = root[j];
				root[j] = swap;
			}
			cout << "Корни в порядке возрастания: " << endl;
			for (int i = 0; i <= 2; i++)
				cout << root[i] << endl;
	system("PAUSE");
	return 0;
}
преподу не понравилось то что выделено, как исправить ?


Условие:
Дана последовательность символов. Проверить, правильно ли в них расставлены скобки (т.е. находится ли справа от каждой открывающей скобки закрывающая). (Тип string запрещен для использования)

программа:
Код:
// 7.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	system("CLS");
	setlocale(LC_ALL,"Russian");
	cout << "Введите строку: ";
	char str[255];
	gets(str);
	int c = 0;
	for (int i = 0; i < strlen(str); i++)
	{
		if (str[i] == '(') c++;
		if (str[i] == ')') c--;
		if (c < 0)
			break;

	}
	if (c == 0)
		cout << "Порядок и количество скобок впорядке" << endl;
	else
		cout << "Скобки расставлены неправильно" << endl;
	system("PAUSE");
	return 0;
}
препод написал "использование необоснованно" как исправить ?



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

программа:

Код:
uses crt;
Var str: array[1..20] of string;
    i,j,n: integer;
    f: text;
    c: integer;
Begin
 clrscr;
  assign(f,'1.txt');
  reset(f);
   n:=0;
   while not eof(f) do
    begin
     inc(n);
     readln(f,str[n]);
    End;

  close(f);
  for i:=1 to n do
   Begin
    for j:=1 to length(str[i]) do
     if str[i,j] = '(' then
      inc(c)
     else if str[i,j] = ')' then
      dec(c);
      if c<0 then
       break;
   End;
  if c = 0 then
   writeln(' В файле со скобками все нормально')
  else
   writeln(' В файле не все впорядке со скобками');

 readln;
End.

^организовать без массива


Заранее спасибо за помощь

Последний раз редактировалось kpo4u; 15.12.2011 в 15:08. Причина: указание языка в заголовке
kpo4u вне форума Ответить с цитированием
Старый 15.12.2011, 12:48   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

в первой видимо избыточность:
Код:
	double x1 = Middle(&f1,0,10,0.00001);
	double x2 = Middle(&f2,-10,10,0.00001);
	double x3 = Middle(&f3,0,10,0.00001);
	double root[3];
	root[0] = x1;
	root[1] = x2;
	root[2] = x3;
Почему нельзя сразу присваивать к root?
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 15.12.2011, 13:02   #3
kpo4u
 
Регистрация: 15.12.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Zer0 Посмотреть сообщение
в первой видимо избыточность:
Код:
	double x1 = Middle(&f1,0,10,0.00001);
	double x2 = Middle(&f2,-10,10,0.00001);
	double x3 = Middle(&f3,0,10,0.00001);
	double root[3];
	root[0] = x1;
	root[1] = x2;
	root[2] = x3;
Почему нельзя сразу присваивать к root?
исправил
kpo4u вне форума Ответить с цитированием
Старый 15.12.2011, 19:39   #4
kpo4u
 
Регистрация: 15.12.2011
Сообщений: 4
По умолчанию

Код:
// 7.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	system("CLS");
	setlocale(LC_ALL,"Russian");
	cout << "Введите строку: ";
	char str[255];
	gets(str);
	int c = 0;
	for (int i = 0; i < strlen(str); i++)
	{
		if (str[i] == '(') c++;
		if (str[i] == ')') c--;
		if (c < 0)
			break;

	}
	if (c == 0)
		cout << "Порядок и количество скобок впорядке" << endl;
	else
		cout << "Скобки расставлены неправильно" << endl;
	system("PAUSE");
	return 0;
}
эту задачу решил
kpo4u вне форума Ответить с цитированием
Старый 15.12.2011, 19:42   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
^организовать без массива
Код:
uses crt;
Var str:string;
    i,j,n: integer;
    f: text;
    c: integer;
Begin
 clrscr;
  assign(f,'1.txt');
  reset(f);
   n:=0;
   while not eof(f) do
    begin
     inc(n);
     readln(f,str);
for i:=1 to n do
   Begin
    for j:=1 to length(str) do
     if str[i] = '(' then
      inc(c)
     else if str[i] = ')' then
      dec(c);
   End;
   end;
  if c = 0 then
   writeln(' В файле со скобками все нормально')
  else
   writeln(' В файле не все впорядке со скобками');
 readln;
End
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 18.12.2011, 21:07   #6
kpo4u
 
Регистрация: 15.12.2011
Сообщений: 4
По умолчанию

Ребята огромное спасибо
kpo4u вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно переделать программу Javan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 05.10.2011 11:42
нужно переделать программу Real7 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.12.2009 16:43
нужно переделать задачку!!! Настенька..Блонди Общие вопросы Delphi 0 25.05.2009 21:55