1 Mekatronika B
3110191048
WORKSHOP PEMROGRAMAN 2
STRUCTURE (LANJUTAN)
1. Buat sebuah struktur data untuk membungkus beberapa data dari sebuah sensor
yang berisi parameter:
a. Kecepatan masing masing di arah sumbu X, Y dan Z dengan tipe data float
b. Sudut masing-masing ke arah X, Y dan Z masing-masing dengan tipe
data float
Listing Code :
struct titik
{
float x;
float y;
float z;
};
2. Buat struktur data yang berisi informasi posisi X, Y dan Z (dalam tipe data float),
lalu buat fungsi untuk mendapatkan posisi dari dari pergerakan dengan kecepatan
dengan arah yang ada pada struktur nomor 1.
Listing Code :
#include <iostream>
#include <stdio.h>
#include<stdlib.h>
using namespace std;
struct titik
{
float x;
float y;
float z;
};
struct titik kecepatan;
struct titik sudut;
struct titik posisi;
void posisibaru(struct titik speed, struct titik pos0, float waktu)
{
struct titik pos1;
pos1.x=pos0.x+speed.x*waktu;
pos1.y=pos0.y+speed.y*waktu;
pos1.z=pos0.z+speed.z*waktu;
int main()
{
posisi.x=1;
kecepatan.x=10;
posisi.y=2;
kecepatan.y=10;
posisi.z=3;
kecepatan.z=10;
posisibaru(kecepatan,posisi,10);
}
Output :
3. Buat fungsi untuk menghitung posisi yang mempunyai structure seperti soal nomor 2.
Fungsi panggil dengan mengirimkan argument berupa isi structure soal no 1, dan isi
structure posisi saat ini (nomor 2), serta informasi lama pergerakan (diasumsikan titik
tersebut bergerak dengan kecepatan konstan selama waktu yang diberikan). Hasilnya
langsung di cetak pada fungsi utama (main) melalui metode return (informasi posisi).
Listing Code :
#include <iostream>
#include <stdio.h>
#include<stdlib.h>
struct titik
float x;
float y;
float z;
};
result[0]=pos1.x=pos0.x+speed.x*waktu;
result[1]=pos1.y=pos0.y+speed.y*waktu;
result[2]=pos1.z=pos0.z+speed.z*waktu;
return result;
}
int main()
{
float *ptr;
posisi.x=4;
kecepatan.x=10;
posisi.y=3;
kecepatan.y=10;
posisi.z=2;
kecepatan.z=10;
ptr=posisibaru(kecepatan,posisi,10);
Output :
4. Buat fungsi untuk mengupdate posisi yang mempunyai structure seperti soal nomor
2. Fungsi panggil dengan mengirimkan argument berupa isi structure soal no 1, dan
pointer structure nomor 2, serta informasi lama pergerakan (diasumsikan titik tersebut
bergerak dengan kecepatan konstan selama waktu yang diberikan). Hasilnya
langsung di cetak pada fungsi utama (main) tanpa menggunakan return.
Listing Code :
#include <iostream>
#include <stdio.h>
#include<stdlib.h>
using namespace std;
struct titik
{
float x;
float y;
float z;
};
pos1.x=pos0->x+speed.x*waktu;
pos1.y=pos0->y+speed.y*waktu;
pos1.z=pos0->z+speed.z*waktu;
Output :
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
struct titik
float x;
float y;
float z;
};
result[0]=pos1.x=pos0->x+speed.x*waktu;
result[1]=pos1.y=pos0->y+speed.y*waktu;
result[2]=pos1.z=pos0->z+speed.z*waktu;
return result;
int main()
float *ptr;
posisi=&p;
posisi->x=4;
kecepatan.x=10;
posisi->y=3;
kecepatan.y=10;
posisi->z=2;
kecepatan.z=10;
ptr=posisibaru(kecepatan,posisi,10);
Output :