HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 12.11.2008, 23:31
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

пример как у Dr.zomber'a, тока с использованием факториала:
Код:
#include <stdio.h>
#include <math.h>

int fact(int fct);

int main(int argc, char* argv[])
{
	int n, i;
	double x;
	double a = 0.0, b = 0.0;

	scanf("%lf", &a);
	scanf("%lf", &b);
	scanf("%d", &n);

	if(b>5.0)	b = 4.0;
	if(a<2.0)	a =2.0;
	
	for(i=1; i < n; i++)
	{
		x = x + pow(a*b, i-1) / (fact(i) * (b-i));
	}

	printf("%lf\n", x);

	return 0;
}

int fact(int fct)
{
	return (fct == 1)? 1 : fct * fact(fct-1);
}
З.Ы. интересная весчь: если n = 7, то выводится
1.#INF00
 
Ответить с цитированием

  #2  
Старый 12.11.2008, 23:58
spy-profi
Banned
Регистрация: 12.12.2007
Сообщений: 253
Провел на форуме:
579997

Репутация: 40
По умолчанию

хм...

у меня так норм выходит:
// lab4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "math.h"
#include "stdio.h"



int _tmain(int argc, _TCHAR* argv[])
{
double b, a, n, i,i1;
double S=0;
i1=1;
printf("\n Vvedit a, b, n");
scanf_s("%lf%lf%lf",&a,&b,&n);
if (b>5)
b=4;
if (a<2)
a=2;
for(i=1;i<=n;i++)
S=pow(a*b,i-1)/i1*(b-i);
i1=i1*i;
printf("\n=%f\t",S);
return 0;
}


Не ну нормально ?? Начало 1го курса ппц
 
Ответить с цитированием

  #3  
Старый 13.11.2008, 00:01
scrat
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме:
5812656

Репутация: 1540


По умолчанию

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

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

using namespace std;

int fact(int); //факториал
int _tmain(int argc, _TCHAR* argv[])
{
	int a,b,n;
	
	//Ввод
	cout<<"Enter a:";
	cin>>a;
	cout<<"Enter b:";
	cin>>b;
	cout<<"Enter n:";
	cin>>n;

	//Условия
	if(b>5) b=4;
	if(a<2) a=2;

	int s = 0; //сумма
	//Суммируем
	for(int i=0;i<n;i++)
	{
		
		s +=  (pow((double)(a*b),(double)i-1))/(fact(i)*(b-i));
	}
	cout<<"Answer:"<<s;
	return 0;
}

int fact(int a)
{
	if(a==0) return 1;
	else return a*fact(a-1);
}
 
Ответить с цитированием

  #4  
Старый 12.11.2008, 21:52
Sinay
Постоянный
Регистрация: 01.09.2007
Сообщений: 866
Провел на форуме:
2022674

Репутация: 1224


По умолчанию

ты бы хоть задание сюда написал,лично мне влом еще ссылку вбивать
да и всю лабу бесплатно никто не решит,так: моментами помочь
 
Ответить с цитированием

  #5  
Старый 13.11.2008, 13:25
Red_Red1
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме:
4608122

Репутация: 874
По умолчанию

Хм, может я чего то не знаю, но
Восьмеричная система счисления построена на цифрах от 0 до 7. Однозначное число в восьмеричной системе это числа от 0 до 7.
Дальше, что значит символьное представление? Эти цифры и есть символы которые обозначают число! В языках программирования обычно принято так. Если записано "просто число" то это десятичное, если впереди стоит 0 то это восмеричное, если 0x - шестнадцатиричное. Значит, если я правильно понял насчет символьного представления, то тебе нужно просто приписать впереди 0 (ноль).
Т.е.
Восьмеричное число 6 будет записано как 06.
 
Ответить с цитированием

извените плиз
  #6  
Старый 13.11.2008, 14:26
uzer2008
Новичок
Регистрация: 11.11.2008
Сообщений: 2
Провел на форуме:
3458

Репутация: 0
По умолчанию извените плиз

я вот токо начал изучать ассемблер,вот и нада на ассемблере. вот паскаль и с++ чото ищо рублю а в ассемблере ноль.помогите.извините что ненаписал сразу
 
Ответить с цитированием

  #7  
Старый 13.11.2008, 18:04
groupby
Познающий
Регистрация: 21.09.2008
Сообщений: 42
Провел на форуме:
127017

Репутация: 61
По умолчанию

Цитата:
Сообщение от uzer2008  
я вот токо начал изучать ассемблер,вот и нада на ассемблере. вот паскаль и с++ чото ищо рублю а в ассемблере ноль.помогите.извините что ненаписал сразу
А в русском языке ты рубишь?

в чем сложность переписать написанный мною выше код на ассемблер? В каком месте загвоздка?
 
Ответить с цитированием

  #8  
Старый 14.11.2008, 08:39
MCSnake
Участник форума
Регистрация: 11.06.2008
Сообщений: 142
Провел на форуме:
540493

Репутация: 38
По умолчанию

народ помогите лабу доделать, сделал почти все но не могу вывести печать на принтере(пункт 4)
Цитата:
1. Разместите на форме следующие компоненты:
 TToolBar (компонент VCL с закладки Win32. Он объединяет расположенные на нем кнопки и другие элементы управления и централизованно управляет ими);
 на TToolBar выведите 4 кнопки TSpeedButton для диалогов открытия файла, выбора шрифтов, печати и выхода из приложения;
 компоненты диалогов открытия файла, выбора шрифтов и печати;
 два компонента TMemo;
2. Напишите код для кнопки TSpeedButton1:
 свяжите файловую переменную с выбранным файлом;
 откройте файл для чтения с установкой размера считываемого блока в 1 байт;
 в цикле While, который выполняется, пока не будет достигнут конец файла
a) получите положение файлового указателя:
Pointer:=FilePos(F); // var Pointer: Longint;
b) считайте из файла блок размером 1К в буфер:
BlockRead (F, Buf, SizeOf(Buf), BytesRead); // Byf – массив типа Byte р-ром 1К
Здесь используется расширенный синтаксис процедуры BlockRead, при котором в программу возвращается количество реально считанных блоков (переменная BytesRead). Вместо SizeOf(Buf) можно указать 1024 (т.е. 1К).
c) используя дополнительную переменную типа String, выведите в TMemo1 считанный блок;
d) выполните редактирование считанного блока, например, замените символ пробела на запятую:
for i:=1 to BytesRead do if Buf[i]=32 then Buf[i]:=44;
e) выведите отредактированный текст в TMemo2;
f) передвиньте указатель в файле на начало обрабатываемого блока, так как при выполнении процедуры BlockRead он переместился на конец блока;
g) запишите отредактированный блок из буфера на диск:
BlockWrite (F, Buf, BytesRead);
Указатель при этом передвинется на конец блока.
3. Напишите код для диалога выбора шрифтов, позволяющий устанавливать шрифты в обоих TMemo.
4. Организуйте печать текста из окна TMemo2 (не более двух страниц !), предусмотрите возможность печати нескольких копий.
+++++ обещаю, хз правда с этой репой мона нет, если че друга попрошу))

Последний раз редактировалось MCSnake; 14.11.2008 в 08:43..
 
Ответить с цитированием

  #9  
Старый 14.11.2008, 12:25
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

http://sources.ru/delphi/system/print_without_tprinter.shtml
 
Ответить с цитированием

  #10  
Старый 14.11.2008, 12:49
Vasiliusis
Новичок
Регистрация: 14.11.2008
Сообщений: 2
Провел на форуме:
1684

Репутация: 0
По умолчанию

Добрый день.
Скажите пожалуйста, почему различаются результаты при выполении арифметических операций на чистом С++ и при использовании АССЕМБЛЕРНОЙ ВСТАВКИ?

Код:
#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;

BYTE ddS = 10;
BYTE ccS = 10;
BYTE aS = 6;

WORD NUM;

void main()
{
	__asm
	{
		MOV AL, ccS
		SUB AL, aS
		INC AX
		PUSH AX
		MOV AL, ccS
		MOV BL, ddS
		CBW
		DIV BL		
		PUSH AX		
		MOV AL, 3
		MOV BL, aS
		MUL BL
		MOV BL, 2
		CBW
		DIV BL
		POP BX
		ADD AL, BL
		POP BX
		CBW
		DIV BL
		MOV NUM, AX
	}
	cout<<"ASSEMBLER = "<<NUM<<endl;
	cout<<"C++ = "<<setprecision(3)<<showpoint<<(static_cast<float>(ccS)/ddS+(3*aS)/2)/(ccS-6+1)<<endl;
	system("PAUSE");
}
Сейчас все сходится.

Но можете взять отличные от этих значения - увидите результат.
Нужно для вывода по лабе.

Благодарствую.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.