Arama butonu
Bu konudaki kullanıcılar: 3 misafir, 1 mobil kullanıcı
4171
Cevap
168256
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (140. sayfa)
-
11 yıl
Teğmen

#include <stdio.h> 
#include <stdlib.h>
#include <math.h>
#include <time.h>
// default values
#define MATRIX_SIZE 5
#define VALUE_MIN 1
#define VALUE_MAX 5
// functions
double compute_determinant(int matrix[MATRIX_SIZE][MATRIX_SIZE]);
void matrix_create(int matrix[MATRIX_SIZE][MATRIX_SIZE], int min_val, int max_val);
void matrix_print(int matrix[MATRIX_SIZE][MATRIX_SIZE]);
// main function
int main(int argc, char *argv[])
{
// variables
int matrix[MATRIX_SIZE][MATRIX_SIZE];
int row, column;
// generate different numbers
srand(time(NULL));
// create a matrix with random numbers
matrix_create(matrix, VALUE_MIN, VALUE_MAX);
// print matrix
matrix_print(matrix);
// calculate determinant of matrix
printf("Determinant of NxN Matrix:\t%d", compute_determinant(matrix));
return 0;
}
// compute determinent of matrix
double compute_determinant(int matrix[MATRIX_SIZE][MATRIX_SIZE]) {




return 0.0;
}
// print matrix
void matrix_print(int matrix[MATRIX_SIZE][MATRIX_SIZE]) {
int row, column;

for(row = 0; row < MATRIX_SIZE; row++) {
for(column = 0; column < MATRIX_SIZE; column++) {
printf("%d\t", matrix[row][column]);
}
printf("\n");
}
}
// create matrix
void matrix_create(int matrix[MATRIX_SIZE][MATRIX_SIZE], int min_val, int max_val) {
int row, column;
srand(time(NULL));

for(row = 0; row < MATRIX_SIZE; row++) {
for(column = 0; column < MATRIX_SIZE; column++) {
matrix[row][column] = (rand() % (max_val-min_val+1)) + min_val;
}
}
}


Arkadaşlar şu kodda(C)

double compute_determinant(int matrix[MATRIX_SIZE][MATRIX_SIZE]) kısmında takıldım bana yardımcı olur musunuz?


Bu mesaja 1 cevap geldi.
H
11 yıl
Er

merhabalar c# arayüzü prog. ile seriporttan pıc' işlemciye trackbar bilgilerini maximun 1 byte, 8 bit olarak sorunsuz gönderebiliyorum ama 9 bit'lik bir değeri maalesf.
şu şekilde gönderme mümkün olabilirmi örneğin gönderilecek değerimiz 450 olsun bu değerin ilk 8 bit'ini maskeleyip gönder ve diğer kalan tek bitide yani 9.bitide 8 bit sağa kardır gönder.c#'da yeni sayılırım yardımcı olurmusun. kodları ekliyorum bu kodlar çalışıyor sorun yok dediğim gibi 9-10 biti nasıl gönderebilirim.

using System; 
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;

namespace servo_ferdem
{
public partial class Form1 : Form
{
public void send(byte data)
{


if (serialPort1.IsOpen)
{


byte[] buffer = { 0 };
buffer[0] = data;
serialPort1.Write(buffer, 0, 1);


/*serialPort1.Write(new byte[] {data} , 0, 1);*/

}
else
{
if (!serialPort1.IsOpen)
{
serialPort1.PortName = comboBox1.SelectedItem.ToString();
serialPort1.Open();
textBox1.Text = "seri porta bağlandınız";
}
//MessageBox.Show("Port açık değil");

}

}

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "seri porta bağlandınız....";
comboBox1.DataSource = System.IO.Ports.SerialPort.GetPortNames();
comboBox1.SelectedItem = 1;
}

private void button1_Click(object sender, EventArgs e)
{
if (!serialPort1.IsOpen)
{
serialPort1.PortName = comboBox1.SelectedItem.ToString();
serialPort1.Open();
}
}

private void button2_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
serialPort1.Close();
}


private void trackBar1_MouseUp(object sender, MouseEventArgs e)
{

send(10); //sira ilk servonun
send(Byte.Parse(trackBar1.Value.ToString()));

}

private void trackBar2_MouseUp(object sender, MouseEventArgs e)
{
//
send(20); //sira ikinci servonun
send(Byte.Parse(trackBar2.Value.ToString()));
}

private void trackBar3_MouseUp(object sender, MouseEventArgs e)
{


send(30); //sira ucuncu servonun
send(Byte.Parse(trackBar3.Value.ToString()));
}

private void hakkındaToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Servo kontrol ");

}

private void trackBar1_Scroll(object sender, EventArgs e)
{
label5.Text = trackBar1.Value.ToString();
}

private void trackBar2_Scroll(object sender, EventArgs e)
{
label6.Text = trackBar2.Value.ToString();
}

private void trackBar3_Scroll(object sender, EventArgs e)
{
label7.Text = trackBar3.Value.ToString();
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}

}
}



G
11 yıl
Yarbay

Aynen öyle 8 bit sağa kaydırıp göndereceksin. Pic tarafında 2. byte ı alırken de "x = (x << 8) + gelen_byte;"


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hobbyrc.kayseri
H
11 yıl
Er

elektro_gadget bu kodlar tamamen deneme amaçlıdır yapabilecekmiyim diyede textboxtada görselledim ancak alt 8 bayte istenildiği maskeledim üstbyte'ı ise maalesef. textbox2 de ancak alt byte kar görünüyor. maskeust değişkenide hata veriyor. şu hatayı Error 1 Cannot implicitly convert type 'uint' to 'int'. An explicit conversion exists (are you missing a cast?)

            Int32 altbyte; 
Int32 ustbyte;
Int32 maskeust = 0xff000000;
Int32 maskealt = 0x000000ff;

Int32 sayi= Convert.ToInt32(textBox1.Text);

altbyte = maskealt & sayi;
ustbyte = maskeust & sayi;
textBox2.Text = Convert.ToString("altbayte= "+altbyte+" üstbyte= "+ustbyte);



G
11 yıl
Yarbay

Denemene gerek yok çok basit zaten. SerialPort.Write() metodu byte dizisi alıyormuş. 2 byte halinde vereceksin. Şöyle;

Int16 value = 450;
byte[] buffer = new byte[2];

buffer[0] = (byte) value;
buffer[1] = (byte) value >> 8;

seriport.Write(buffer, 0, 2);

Aynı işi yapan BitConverter diye bir sınıf varmış ama yazdığına göre byte dizilimi burada yaptığımızın tam tersi. Onu kullanacak olursan karşı tarafta önce msb (üst byte) alman lazım.
http://msdn.microsoft.com/en-us/library/system.bitconverter%28v=vs.110%29.aspx


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hobbyrc.kayseri
N
11 yıl
Yüzbaşı

[code] for(i=1;eko>=i;i++)
{


printf("%.2f\n",sonuc);

sonuc=sonuc-(sonuc*oran);
}[code]

arkadaşlar burada belirli bir oran alıyor sonuc olarak verdiği
sonuc=oran*fiyat;
yapmasını istediğim şey fiyatı oran ile çarpıp değeri bulacak bundan sonra bunu fiyattan çıkaracak çıkan sonucun oranını bulacak sonra bu böyle devam edecek ve kullanıcı bir değer girecek bu değere göre işlem yapacak ve sonuncu işlemde direk çıkan sonucu yazacak. İnşallah anlatabilmişimdir... Yukarıda yazdığımda sadece sonuncu çıkmıyor. Ve beni deli etti. Yardım ederseniz çok sevinirim :)


Bu mesaja 1 cevap geldi.
S
11 yıl
Yüzbaşı

Arkadaslar aritmetik islem kullanmadan countu bir nasil arttirabilirim ? Binary sistemde 0 lari ve 1 leri sayicam buldukca countu 1 artiricam ama +-*% yasak .



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
E
11 yıl
Teğmen

< Resime gitmek için tıklayın >




/*Kenar degerleri 0 ile 100 araliginda tam sayi olan dik ucgenleri bulan program*/ 
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main (){
int say,a,b,c,x,y;
say=0;
for (a=1;a<=100;a++) {
for (b=1;b<=100;b++) {
for (c=1;c<=100;c++)
{x==a*a;
y==b*b+c*c;
if(x=y)
{printf("%d,%d,%d\n",a,b,c);
say++;}
}
}

}


say==say/2;
printf("%d",say);
getch();
return 0;
}


Verdiğim kodu derlerken bir hata vermiyor ama program doğru çalışmıyor.Kenar değerleri 0ile100 aralığındaki tam sayılar olan dik üçgenleri tek tek yazan ve en sonunda da üçgen sayısını veren programı yazmaya çalışıyorum.


Edit:Flow chart'ı derste hoca çizdi, onda hata olduğunu zannetmiyorum.

Edit2:Sorunu çözdüm doğrusu böyle olacak:

#include<stdio.h> 
#include<conio.h>
#include<math.h>
int main (){
int say,a,b,c,x,y;
say=0;
for (a=1;a<100;a++) {
for (b=1;b<100;b++) {
for (c=1;c<100;c++)
{x=a*a;
y=b*b+c*c;
if(x==y)
{printf("%d,%d,%d\n",a,b,c);
say++;}
}
}

}


say=say/2;
printf("Farkli ucgen sayisi = %d",say);
getch();
return 0;
}





< Bu mesaj bu kişi tarafından değiştirildi ElrondPeredhil -- 16 Mart 2014; 12:52:58 >
Bu mesaja 1 cevap geldi.
E
11 yıl
Teğmen

quote:

Orijinalden alıntı: nereyeeserse

[code] for(i=0;eko>=i;i++)
{


printf("%.2f\n",sonuc);

sonuc=sonuc-(sonuc*oran);
}[code]

arkadaşlar burada belirli bir oran alıyor sonuc olarak verdiği
sonuc=oran*fiyat;
yapmasını istediğim şey fiyatı oran ile çarpıp değeri bulacak bundan sonra bunu fiyattan çıkaracak çıkan sonucun oranını bulacak sonra bu böyle devam edecek ve kullanıcı bir değer girecek bu değere göre işlem yapacak ve sonuncu işlemde direk çıkan sonucu yazacak. İnşallah anlatabilmişimdir... Yukarıda yazdığımda sadece sonuncu çıkmıyor. Ve beni deli etti. Yardım ederseniz çok sevinirim :)

Ben de iyi bilmiyorum ama bir de böyle dener misin?



M
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: hotchner12

http://imgim.com/8241inciz5361677.jpg




 


Verdiğim kodu derlerken bir hata vermiyor ama program doğru çalışmıyor.Kenar değerleri 0ile100 aralığındaki tam sayılar olan dik üçgenleri tek tek yazan ve en sonunda da üçgen sayısını veren programı yazmaya çalışıyorum.


Edit:Flow chart'ı derste hoca çizdi, onda hata olduğunu zannetmiyorum.

Edit2:Sorunu çözdüm doğrusu böyle olacak:

[code][/code]

Hocam kod doğru ama "=" ve "==" operatörlerinin kullanım yerleri yanlış. Mesela burada x=a*a; ve y=b*b+c*c; değer atama yapılıyor dolayısıyla tek eşittir operatörü kullanılır, kıyaslama yapılacaksa çift eşittir operatörü kullanılır if(x==y) bu bölümdeki gibi.





< Bu mesaj bu kişi tarafından değiştirildi MO209 -- 16 Mart 2014; 13:11:22 >
Bu mesaja 1 cevap geldi.
E
11 yıl
Teğmen

Teşekkürler hocam şimdi daha iyi anladım.




Bu mesajda bahsedilenler: @~H!ddeN
M
11 yıl
Yüzbaşı

Rica ederim, iyi çalışmalar.




Bu mesajda bahsedilenler: @hotchner12
E
11 yıl
Teğmen

quote:

Orijinalden alıntı: MOM94

C' ye yeni başlıyorum şu şekilde bi kod oluşturmam gerek, "evet" veya "hayır" ile cevaplanan bir soru sorulacak bunun cevabına göre iki farklı sonuç yazılacak.

"SORU" "CEVAP" TEPKİ"

Örneğin "Öğrenci misin"----"evet"--- "ne güzel"
"Öğrenci misin"----"hayır"--- "vs." gibi

Biraz araştırdım if/else kullanılacak galiba ama iyi bi anlatım bulamadım bi el atsanız :)

 

#include <stdio.h>
#include <conio.h>

int main(){
int p;
printf("Evet icin 1, Hayir icin 2 giriniz.\n");
printf("Ogrenci misin?\n");
scanf("%d",&p);
if(p==1){printf("Ne guzel");
}
if(p==2) {printf("Alternatif cevap");
}
getch();
return 0;
}



Hocam ben de acemiyim ama bunu derletip bir bak, buradan yürüyebilirsin diye düşünüyorum.





< Bu mesaj bu kişi tarafından değiştirildi ElrondPeredhil -- 16 Mart 2014; 13:32:48 >
Bu mesaja 2 cevap geldi.
B
11 yıl
Teğmen

Arkadaşlar yeni konu açmak istemedim. C# ta basit Kalıtım ve Arayüz örnekleri yazarmısınız ?


Bu mesaja 1 cevap geldi.
A
11 yıl
Onbaşı

Arkadaşlar küçük bir yardıma ihtiyacım var. Bağlı listelerde elimizde olan bir integer diziyi aynı anda hem orjinal halin hem de sıralanmış halini gösteren program. yani dizi bozulmayacak. Bunun algoritmasını geliştiremedim. Yardım edecek var mı? Nasıl bir struct kullanmalıyım


Bu mesaja 1 cevap geldi.
M
11 yıl
Yüzbaşı

#include <stdio.h> 
float a,b,top,cik,carp,bol;


main()
{
printf("birinci sayiyi giriniz.Bu sayi ikincisinden buyuk olmali =");
scanf("%d",&a);

printf("ikinci sayiyi giriniz =");
scanf("%d",&b);

cik=a-b;

top=a+b;

carp=a*b;

bol=a/b;



printf("Cikarma sonucu=%d\n",&cik);


printf("Toplama sonucu=%d\n",&top);


printf("Carpma sonucu=%d\n",&carp);


printf("Bolme sonucu=%d\n",&bol);



}


şurda hatam nerede tam olarak yardımcı olabilir misiniz basit bişey bilene göre ama ben yeni başladığım için tam olarak sorunu çözemedim


Bu mesaja 1 cevap geldi.
M
11 yıl
Teğmen

Eyvallah hocam mantığını anladım




Bu mesajda bahsedilenler: @hotchner12
E
11 yıl
Teğmen

quote:

Orijinalden alıntı: mrYAGIZ

#include <stdio.h> 
float a,b,top,cik,carp,bol;


main()
{
printf("birinci sayiyi giriniz.Bu sayi ikincisinden buyuk olmali =");
scanf("%d",&a);

printf("ikinci sayiyi giriniz =");
scanf("%d",&b);

cik=a-b;

top=a+b;

carp=a*b;

bol=a/b;



printf("Cikarma sonucu=%d\n",&cik);


printf("Toplama sonucu=%d\n",&top);


printf("Carpma sonucu=%d\n",&carp);


printf("Bolme sonucu=%d\n",&bol);



}


şurda hatam nerede tam olarak yardımcı olabilir misiniz basit bişey bilene göre ama ben yeni başladığım için tam olarak sorunu çözemedim


quote:


#include <stdio.h>
float a,b,top,cik,carp,bol;


main()
{
printf("birinci sayiyi giriniz.Bu sayi ikincisinden buyuk olmali =");/*Bence olmasa da olur*/
scanf("%f",&a);

printf("ikinci sayiyi giriniz =");
scanf("%f",&b);

cik=a-b;

top=a+b;

carp=a*b;

bol=a/b;



printf("Cikarma sonucu=%f\n",cik);


printf("Toplama sonucu=%f\n",top);


printf("Carpma sonucu=%f\n",carp);


printf("Bolme sonucu=%f\n",bol);



}





< Bu mesaj bu kişi tarafından değiştirildi ElrondPeredhil -- 16 Mart 2014; 20:11:06 >

M
11 yıl
Yüzbaşı

< Resime gitmek için tıklayın >

sonuçları böyle ,00000 şeklinde değilde direk 10,20,5 gibi alamaz mıyız ?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hotchner12
B
11 yıl
Binbaşı

Double.round veya float.round a bak



< Bu ileti mini sürüm kullanılarak atıldı >