Skocz do zawartości

Programowanie


xemi

Rekomendowane odpowiedzi

Co zrobic, zeby liczby rzeczywiscie byly losowe, a nie pseudolosowe z randa? Musze uzywac randa, nie moge randomise (taki wymog w zadaniu)

 

// tablice.cpp : Defines the entry point for the console application.
//

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




int Czytaj(double A[])
{int i,n;
double x, a = 200.0/RAND_MAX;


do
{printf("Podaj ilosc liczb: ");
scanf("%d",&n);}
while(n<2||n>100);
for(i=0;i<n;i++)
{x= (a*rand()-100)
A[i] = x;
}

return n;
}


void wypisywanie(int n, double A[])
{
int i;
int k=10;
 for (i=0; i<n; i++) 
 {
if (i % k) printf("\t");
else printf("\n");
printf("%f", A[i]);	 
 }
}

double Srednia(int n,double A[])
{int i;
double S=0;
double D;
for(i=0;i<n;i++) S=S+A[i];
S=S/n;

return S;
}

double odchyl (int n, double A[])
{int i;
double S,D;
S=Srednia(n,A);
for (i=0; i<n; i++) D=pow(A[i]-S,2);
D=sqrt(D/(n-1)); 
return D;
}

double MAX(int n, double A[])

{int i;

double max=A[0];

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

if(A[i]>max) max=A[i];

return max;
}



int main()
{ int n;

double max,D,S,A[100];
n=Czytaj(A);
max=MAX(n,A);
S=Srednia(n,A);
D=odchyl(n,A);
wypisywanie (n,A);
printf("\n");
printf("\n");
printf("\tNajwieksza liczba to %lf\n",max);
printf("\tSrednia=%lf\n",S);
printf("\tOdchylenie standardowe= %lf\n",D);

flushall ();
getchar ();
return 0;

}

Odnośnik do komentarza
@jasonx

Przed pierwszym użyciem rand wywołaj srand(time(NULL)) i dołącz time.h.

dalej mi losuje to samo :roll:

Srand ustawia ziarno generatora, time(NULL) zwraca liczbę sekund, które upłynęły od bodajże 01.01.1970 roku.

cos jak w squid ;)

 

#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
#include "time.h"  //DODANE


int Czytaj(double A[])
{int i,n;
double x, a = 200.0/RAND_MAX;


do
{printf("Podaj ilosc liczb: ");
scanf("%d",&n);}
while(n<2||n>100);
for(i=0;i<n;i++)
{x= (a*rand()-100);
A[i] = x;
}

return n;
}


void wypisywanie(int n, double A[])
{
int i;
int k=10;
 for (i=0; i<n; i++) 
 {
if (i % k) printf("\t");
else printf("\n");
printf("%f", A[i]);	 
 }
}

double Srednia(int n,double A[])
{int i;
double S=0;
double D;
for(i=0;i<n;i++) S=S+A[i];
S=S/n;

return S;
}

double odchyl (int n, double A[])
{int i;
double S,D;
S=Srednia(n,A);
for (i=0; i<n; i++) D=pow(A[i]-S,2);
D=sqrt(D/(n-1)); 
return D;
}

double MAX(int n, double A[])

{int i;

double max=A[0];

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

if(A[i]>max) max=A[i];

return max;
}



int main()
{ int n;
srand(time(NULL));  //DODANE

double max,D,S,A[100];
n=Czytaj(A);
max=MAX(n,A);
S=Srednia(n,A);
D=odchyl(n,A);
wypisywanie (n,A);
printf("\n");
printf("\n");
printf("\tNajwieksza liczba to %lf\n",max);
printf("\tSrednia=%lf\n",S);
printf("\tOdchylenie standardowe= %lf\n",D);

flushall ();
getchar ();
return 0;

}

Sprawdziłem takie coś i daje to różne liczby ;). Zaznaczyłem komentarzem to co dodałem.

Odnośnik do komentarza

Tresc zadania do wykonania:

 

1. Zainicjować tablicę wskaźników do trzech tekstów. Wypisać te teksty w kolejności alfabetycznej. Do porównania tekstów użyć funkcji stricmp. Policzyć ile wyrazów jest w każdym tekście.

 

 

Jako, ze jestem ciemna masa w tym jeszcze, udalo mi sie dorwac jakiegos gotowca. Tylko nie wiem, jak pozbyc sie z niego tego errora (pisze w Visualu'08)

 

#include “stdafx.h”
#include “stdio.h”
#include “stdlib.h”
#include “string.h”

int licz_slowa(char tekst[]) {
 int n, ilosc_slow, wpslowa;	  // wpslowa okresla czy jestesmy w(1) slowie czy poza(0) nim
 for(n=0,wpslowa=0,ilosc_slow=0;tekst[n]!='\0';n++) { // petla dziala dopoki na napotkamy na koniec tekstu
if(wpslowa==0 && ((tekst[n]>='a' && tekst[n]<='z') || (tekst[n]>='A' && tekst[n]<='Z'))) {
  ilosc_slow++;
  wpslowa=1;
}
if(wpslowa==1 && !((tekst[n]>='a' && tekst[n]<='z') || (tekst[n]>='A' && tekst[n]<='Z'))) {
  wpslowa=0;
}
 }
 return ilosc_slow;
}


int main(void)
{
 char wsk_tekstu[3][256];		// deklaracja tablicy tekstow. wsk_tekst[n] jest wskaznikiem do n`tego tekstu
 int n;

 for(n=0;n<3;n++) {			  // wczytuje ciagi znakowe
printf("Podaj %d tekst: ", n+1);
gets(wsk_tekstu[n]);
printf("tekst %d: %s\n", n+1, wsk_tekstu[n]);
 }
 qsort(wsk_tekstu, 3, 256, strcmp);  // sortowanie tekstow
 for(n=0;n<3;n++) {							  // wyprowadzanie w kolejnosci alfabetycznej
printf("tekst %d: %s\nilosc slow: %d\n", n+1, wsk_tekstu[n], licz_slowa(wsk_tekstu[n]));
 }

 system("PAUSE");	
 return 0;
}

A jakby oprocz tego ktos krok po kroku łopatologicznie moglmy wytlumaczyc poszczegolne kroki programu, bylbym wdzieczny bardzo.. :piwo:

Odnośnik do komentarza
  • 2 tygodnie później...

Takie pytanko: jak w javie zmusic okienko dialogowe wyboru plikow do zamkniecia po wybraniu wlasciwego pliku?

 

mam taki fragment kodu:

if (openfileflag) 
		{
			try
			{
				FileDialog filedialog = new FileDialog(frame, "Okno dialogowe");
				filedialog.setVisible(true);
				String path = filedialog.getFile();
				image = ImageIO.read(new File(path));
				imagewidth = image.getWidth();
				imageheight = image.getHeight();
			}
			catch(IOException e) {System.out.println("Loading error");}
			graphics2d.drawImage(image, 100, 100, imagewidth, imageheight, null);
		}

I po wybraniu pliku i zatwierdzeniu przyciskiem 'OK' okno to powinno zniknac i rzeczywiscie znika, ale blyskawicznie pojawia sie ponownie

zamkniecie okienka "iksem" w prawym gornym rogu nie skutkuje, podobnie jak wcisniecie "Anuluj" :|

Odnośnik do komentarza

Witam.

A ja mam pytanie, o C#, moze sie ktos w tym orientuje.

Konkretnie chodzi o projekt z Visual'u i Windows Forms. Jak mam na formularzu jakies kontrolki i cche zrobic tak ze nad nimi jest kontrolka 'panel' na ktorej ma cos byc rysowane. Teraz pytanie taki, czy da sie cos zrobic zeby ta kontrolka panel miala przezroczyste lto, tak zeby widac bylo tylko to co tam narysuje? I jak cos, to jak to zrobic?

Odnośnik do komentarza

Big thanks Fenomen za ostatnia pomoc :) Tym razem mam inny problem - W klasie ComplexImpl zaimplementowac operator dodawania, odejmowania, dzielenia i mnozenia :/.

 

public interface Complex {

public Complex add(Complex c);

public Complex sub(Complex c);

public Complex multiply(Complex c);

public Complex divide(Complex c);

public double modulus();

public double re();

public double im();

}

 

public class ComplexImpl implements Complex {

private final double re;

private final double im;

public ComplexImpl(double re, double im) {
	this.re = re;
	this.im = im;
}

@Override
public Complex add(Complex c) {
	return new ComplexImpl(this.re() + c.re(), this.im() + c.im());
}

@Override
public Complex divide(Complex c) {
	// TODO Auto-generated method stub
	return null;
}

@Override
public double im() {
	return this.im;
}

@Override
public double modulus() {
	return Math.sqrt(this.re() * this.re() + this.im() * this.im());
}

@Override
public Complex multiply(Complex c) {
	// TODO Auto-generated method stub
	return null;
}

@Override
public double re() {
	return this.re;
}

@Override
public Complex sub(Complex c) {
	// TODO Auto-generated method stub
	return null;
}

}

 

public class TestComplex {

public static void main(String[] args) {
	Complex a = new ComplexImpl(1.0, 2.0); // 1 + 2j
	Complex b = new ComplexImpl(4, -5);	// 4 - 5j

	System.out.println(a.modulus());

	Complex c = a.add(b);
	System.out.println(c.im());
}

}

Odnośnik do komentarza

Mam do napisania dwa programiki. Nie prosze, zeby ktos mi to od poczatku napial (no chyba, ze bedzie mial ochote ;) ), ale moze ma ktos podobnego gotowca.

 

1)

Napisz program operujący na strukturze Student. Struktura zlożona jest z pól nazwisko(20 znaków), imie(15znaków), oraz średnich z ocen(float). W zależności od wybranej opcji uzytkownik powinien wprowadzić dane, wyświetlać poszczególne rekordy lub cała bazę.

Przy wprowadzaniu należy sprawdzić, aby nie przekroczyć ustalonego rozmiaru tablicy struktury( można zrobic dynamiczne wprowadzanie), oraz umozliwić zapisanie bazy do pliku tekstowego.

 

2)

Stwórz strukturę definiującą okrąg. Każdy okrąg składa się ze współrzędnych środka oraz promienia. Napisz funkcję obliczającą pole i obwód oraz wyprowadzającą dane z dokładnością do 0,001. Wprowadź dane drugiego okręgu oraz zbadaj czy wprowadzone dane mają 0,1 czy 2 punkty wspólne?

Odnośnik do komentarza
Mam do napisania dwa programiki. Nie prosze, zeby ktos mi to od poczatku napial (no chyba, ze bedzie mial ochote ;) ), ale moze ma ktos podobnego gotowca.

 

1)

Napisz program operujący na strukturze Student. Struktura zlożona jest z pól nazwisko(20 znaków), imie(15znaków), oraz średnich z ocen(float). W zależności od wybranej opcji uzytkownik powinien wprowadzić dane, wyświetlać poszczególne rekordy lub cała bazę.

Przy wprowadzaniu należy sprawdzić, aby nie przekroczyć ustalonego rozmiaru tablicy struktury( można zrobic dynamiczne wprowadzanie), oraz umozliwić zapisanie bazy do pliku tekstowego.

 

Miałem kiedyś podobny program na kolokwium napisać, może Ci się przyda... Nie jest to dokładnie to co potrzebujesz, ale coś już będziesz miał, resztę sobie dopiszesz :)

 

#include <iostream>
#include <iomanip>
#define N 2

using namespace std;

struct dane_os
{
   char imie[20];
   char nazwisko[20];
   };

struct Student
{

   float oceny[2];
   float srednia;
   dane_os dane;
   };

void wczytaj (Student &p);
void wypisz (Student &p);
void srednia_f (Student &p); 

int main()
{
Student t[N];
for (int i=0; i<N; i++)
{
wczytaj(t[i]);
}

for (int w=0; w<N; w++)
{
srednia_f(t[w]);
}
for (int j=0; j<N; j++)
{
wypisz(t[j]);
}

system ("Pause");
}

void wczytaj (Student &p)
{
 cout<<"Podaj imie:"<<endl;
 cin.getline(p.dane.imie, 20);
 cout<<"Podaj nazwisko:"<<endl;
 cin.getline(p.dane.nazwisko, 20);
 cout<<"Podaj kolejno 2 oceny:"<<endl;

 for (int i=0; i<2; i++)
 {
	 cin>>p.oceny[i];
	 }
 cin.get();
} 

void wypisz (Student &p)
{
 cout<<p.dane.imie[0]<<"."<<" "<<p.dane.nazwisko;
 for (int i=0; i<2; i++)
 {
	 cout<<" "<<p.oceny[i]<<" ";
	 }
	 cout<<p.srednia;
	 cout<<endl;
}

void srednia_f (Student &p)
{
 float suma, srednia;
 for (int i=0; i<2; i++)
{ 
 suma=suma+p.oceny[i];
 srednia=suma/2;
 }
 p.srednia=srednia;
}

Odnośnik do komentarza

@Manort, znalazlem chwile i napisalem Ci te obsluge dzialan:

 

public interface Complex {

public Complex add(Complex complex);
public Complex sub(Complex complex);
public Complex mul(Complex complex);
public Complex div(Complex complex);
public double mod(Complex complex);
public double re();
public double im();

}

 

public class ComplexNumber implements Complex{

private double re;
private double im;

public ComplexNumber(double re, double im)
{
	this.re = re;
	this.im = im;
}

public ComplexNumber()
{
	re = im = 0;
}

public Complex add(Complex complex)  {  return new ComplexNumber(this.re+complex.re(), this.im+complex.im());  }

public Complex sub(Complex complex)  {  return new ComplexNumber(this.re-complex.re(), this.im-complex.im());  }

public Complex mul(Complex complex)  
{   
		return new ComplexNumber(this.re*complex.re()-this.im*complex.im(), 
		   this.im*complex.re()+this.re*complex.im());
}

public Complex div(Complex complex)
{
	return new ComplexNumber((this.re*complex.re()+this.im*complex.im())/Math.pow(complex.im(), 2),
			((this.im*complex.re()-this.re*complex.im())/Math.pow(complex.re(), 2)));
}

public double mod(Complex complex)  {  return Math.sqrt(Math.pow(complex.re(), 2)+Math.pow(complex.im(), 2));   }

public double re() {return re;}

public double im() {return im;}

public String toString()  {   return "Czesc rzeczywista: "+re+", czesc urojona: "+im+"i";  }

}

 

public class Test {

public static void main(String[] args)
{
	ComplexNumber a = new ComplexNumber(2, 5);
	ComplexNumber b = new ComplexNumber(4, 8);
	System.out.println("Suma: "+a.add(b).toString());
	System.out.println("Roznica: "+a.sub(b).toString());
	System.out.println("Iloczyn: "+a.mul(b).toString());
	System.out.println("Iloraz: "+a.div(b).toString());
	System.out.println("Modul z a: "+a.mod(a));
	System.out.println("Modul z b: "+b.mod(b));
}

}

 

Efekt dzialania programu:

Suma: Czesc rzeczywista: 13.0, czesc urojona: 6.0i

Roznica: Czesc rzeczywista: -3.0, czesc urojona: -2.0i

Iloczyn: Czesc rzeczywista: -32.0, czesc urojona: 36.0i

Iloraz: Czesc rzeczywista: 0.75, czesc urojona: 0.25i

Modul z a: 5.385164807134504

Modul z b: 8.94427190999916

Odnośnik do komentarza

Pomógłby mi ktoś napisać deklaracje do pliku nagłówkowego w c++ ?

 

zdefiniować wzorzec interfejsu (abstrakcyjnej klasy) funkcja:

• parametrem wzorca jest typ danych argumentów i wartości funkcji

• klasa posiada przeładowanych operator () (jest to obiekt funkcyjny), który zwraca wartość funkcji dla

podanych argumentów (metoda czysto wirtualna)

• obiekty implementujące ten interfejs realizują konkretne funkcje (np. x^2) - proszę przygotować kilka

przykładowych funkcji

 

Proszę zdefiniować wzorzec klasy MonteCarlo:

• parametrem wzorca jest klasa implementująca interfejs funkcja - a więc konkretna funkcja, której pole

będziemy obliczać

• pozwala określić liczbę losowanych punktów (to również może być parametr wzorca), a następnie dokonać

obliczenia (oszacowania) pola pod wykresem funkcji

Odnośnik do komentarza

template <class T> 
class IFunkcja {
 public:
 virtual T operator()(int, T) =0; ///Metoda czystowirtualna

};

template <class T> 
class Funkcja : public IFunkcja<T> {

T operator()(T x);
T operator()(int, T x);
};


template<template <class A, class B, class C>class W, W IFunkcja, int N> 
class MonteCarlo{}

 

Mój wymysł nie działa, ale ktoś może wie, jak należy przerobić.

Odnośnik do komentarza

- program może obliczyć dowolną całkowitą potęgę (ograniczeniem powinna być tylko pamięć

jednostki wykonawczej (komputera))

- program oblicza dowolną potęgę rzeczywistą liczby dwa (używamy tylko pętli)...nie musi być

dowolnego zakresu.

 

i niezbyt wiem jak sie za to zabrać :zawstydzony: w pierwszym myślniku chodzi o to zeby nie zerowało wyniku po przekroczeniu limitu typu zmiennej.

dodam że nie można korzystać z math.h

Odnośnik do komentarza

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.

Ładowanie
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...