وبلاگ شخصی مستر حاج رضا

وبلاگ شخصی مستر حاج رضا

در اینجا میخوام فقط بنویسم! درهم و نامربوط! همه چیز
وبلاگ شخصی مستر حاج رضا

وبلاگ شخصی مستر حاج رضا

در اینجا میخوام فقط بنویسم! درهم و نامربوط! همه چیز

کاربرد جبر خطی در برنامه نویسی

این استاد ما گیر داده که شما علاوه بر اینکه باید نحوه حل مسائل ریاضی رو باید یاد بگیرید، باید بتونید اون رو در برنامه نویسی هم پیاده اش کنید! 

مثلاً چطور میشه یه ماتریس و یه وکتور رو در برنامه نویسی اضافه کرد

این هم کد یکی اش 

-----------------------------------------------------------------------------------------------

%%bash

pip install --upgrade setuptools

pip uninstall --yes ed-scripts

pip install -U -q git+https://github.com/drdavidrace/ed_scripts.git

import importlib

import in_array

from in_array import in_array

importlib.reload(in_array)

from in_array.in_array import array_float_np, array_float_syp, matrix_float_syp, array_int_np, matrix_int_syp

import numpy as np

from numpy import array, resize, reshape, shape

#There are two ways to enter matrices

#  Method 1:  using reshape

x = reshape(array([1., 2., 3., 4., 5., 6.]),(2,3))

print(x)

print(shape(x))

print(type(x))

print()

#  Method 2:  Entering data as an array of arrays

x = array([[6., 5., 4.],[ 3., 2., 1.]])

print(x)

print(shape(x))

print(type(x))

#  Notice that the shape of the ndarray is derived from the shape of the input automatically in this case.

print()

y = reshape(array([1., 0., -1]),(3,1))

print(y)

print()

print(shape(y))

print()

#  A matrix vector operation

z = x @ y

print(z)

print()

#  another way to do the multiplication

zz = np.matmul(x,y)

print(zz)

print()

#  yet another way to do the multiplication

zzz = np.dot(x,y)

print(zzz)

print()

#  If you like object oriented style programming

zzzz = x.dot(y)

print(zzzz)

print()

-------------------------------------------------------------------------------------------------------------

این استاد محترم تازه این رو به زبان برنامه نویسی پایتون نوشته که من تا حالا باهاش کار نکرده بودم! 

من حالا باید برم یه کم بیسیک پایتون بخونم و هم چه طوری این ماتریس ها و نحوه حل کردنش رو توی یه برنامه بنویسم بدم این استاد تا همش 5 درصد نمره نهایی رو بگیرم! 

این وضع و حال روز ماست اینجا! 

برنامه جاوایی که این چند روز نوشتم

این آخرین تکلیف ام تو درس جاوا بود. درسته تا حالا نمره های خوبی گرفتم ولی باید اذعان کنم که این زبان واقعاً زبان حوصله بر و منفجر کننده مغزه! 

برای نوشتن این برنامه حدود سه روز به مدت 14 ساعت تا حالا کار کردم روش! ناگفته نماند که یه کم تقلب هم کردم! 

این برنامه ای که نوشتم در مورد نشان دادن حساب های بانکی، مقدار پولی که کاربر به حساب خود افزوده، مقدار پولی که کاربر از حساب خود برداشت کرده، تعیین میزان سود بانکی، محاسبه سود بانکی، محاسبه هزینه ها و سرویس های ماهانه بانکی و میزان موجودی در حساب بعد از تمام کسورات. 

این برنامه از سه تا کلاس تشکیل شده. کلاس اول که کلاس بانک اکانت هست یک کلاس انتزاعی هست که تمام فیلد ها و متودهای مربوط به محاسبات رو توش انجام میده. کلاس دوم کلاسی است که از کلاس اول به ارث گرفته شده و فعال بودن و غیرفعال بودن کلاس رو نشون میده و به علاوه نشون میده که اجازه فعالیت به بعضی از عملیات ها در صورتی که موجودی کمتر از 25  دلار باشه نده. سوپر کلاسها هم در همین کلاس دوم که به اسم سیوینگ اکانت هست قرار گرفته. کلاس سوم، کلاس درایور هست و عملاً همه کارها و متودهایی که در دو کلاس قبلی گفته شده بود را به نمایش میزاره. البته در این کلاس درایور من دو تا آبجکت هم درست کردم که نتیجه کار رو در دو حساب بانکی ببینم. 

This is my last Java assignment.  I post it here in my personal blog to keep these codes as a record for me.

I hope my professor gives me complete grade for this one because I spent plenty of time to finish it! 

I put this sentences in English that if she look up and searches my codes in internet and subsequently find this page, I can prove to  her that these codes are really mine! 

Here is a clue for her, I am DCCCD student! and my name is Reza

 برای دیدن کدها به ادامه مطلب بروید

ادامه مطلب ...

برنامه نویسی جاوا - قسمت اول

جاوا یکی از زبانهای قدرتمند برنامه نویسی  در دنیای امروزی است. کاربرد آن حالا حتی از برنامه های سی پلاس پلاس هم بیشتر شده. البته زبانهای مثل پایتون که چند سالی آمدند دارند کم کم عرصه را برای این زبانها تنگ میکنند اما همچنان زبانهای سی پلاس پلاس و جاوا محبوبیت و کارآیی خود را دارند. هنوز هم تقریبا همه برنامه های کامپیوتری و اپلیکیشن های موبایل با این دو تا زبان نوشته میشوند و صد البته هنوز هم یکی از پیش شرطهای استخدام در شرکتهای آی تی و خدمات کامپیوتری بزرگ دانستن این دو زبان میباشد. پس اگر واقعاً میخواهید وارد دنیای کامپیوتر شوید باید با این دو زبان آشنا باشید.

برگردیم سراغ همون زبان جاوا، برای برنامه نویسی و ویرایش کدهای جاوا شما نیاز به نرم افزارهای توسعه نرم افزار دارید. من اینجا فقط به دو تا از اونها اشاره میکنم.

1-      نرم افزار ایکلیپس

2-      نرم افزار نت بینز

هر دو نرم افزار رایگان هستند و میتوانید به صورت رایگان و قانونی آنها را دانلود کنید من لینک دانلود هر دو تا نرم افزار را براتون اینجا میزارم البته خودم قصد دارم با نرم افزار نت بینز کار کنم چون به نظر خودم کار باهاش آسونتره. بنابراین یادداشتهای بعدی من بر اساس نرم افزار نت بینز خواهد بود.

 

لینک دانلود ایکلیپس

http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/oxygenr

البته شما نیاز به جاوا کیت هم دارید برای نصب کامل این برنامه که لینکش اینه

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

 

لینک دانلود نت بینز

http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html

 

بعد از اینکه صفحه دانلود را باز کردید باید روی گزینه قبول شرایط کلیک کنید و با توجه به سیستم عامل کامپیوترتون ورژن مورد نظر رو انتخاب کنید و بعد از دانلود اون رو نصب کنید.

قصد من در این مقاله آموزش این زبان نیست چون خود من هم در این زبان تازه کار هستم و یکی باید جواب سوالهای خود من رو بده ولی سعی میکنم دانسته های خودم رو به صورت یادداشت وار اینجا قرار بدم تا هم بتونم بعداً برای مرور اونها مراجعه کنم و هم اگر کسی خواست استفاده ای از این نوشته ها ببره. 

اولین برنامه ای که نوشتم

این اولین برنامه ای است که نوشتم! 

یه برنامه خیلی ساده و به درد نخور! محاسبه مساحت مربع، مستطیل و دایره در صورتی که شما یک عدد رو وارد کنید و اون عدد یکی از ضلعهای مربع و عرض مستطیل و شعاع دایره باشد! 

کدش رو اینجا یادگاری میزارم. البته مجبورم تعاریف مربوط به خودم و استادم رو پاک کنم 



// Author: Reza 

// Program: This program calculates the perimeter and area of rectangle, Square, and circle

// Input: The Value x (is a side of square, width and half of rectangle, and radius of circle)

// Output: the area of the Square, Rectangle, and Circle 

//Class: C++

//Proffessor: B

// Assignment 1

//Revision: 4

//Date: 04/01/2018



//This header for compile the file and store it

#include "stdafx.h"


// this header needed for int, cout, and cin

#include <iostream>


// This header for Console input and output

#include <conio.h>


// this header needed for showing the double and decimal points

#include <iomanip>



using namespace std;


int main()

{

// Tell the User what this program does

cout << "Hello," << endl;

cout << "This Program Calculates the area of a square, rectangle, and circle according to value of x." << endl;


// Declare the Variable

int x;


//propmpt the user to enter the value x

cout << "Please enter the value for x:" << endl;


// input the value x

cin >> x;


// Calculate the Square Area

int squarearea = x * x;


// Calculate the Rectangle Area

int rectanglearea = (2 * x)*x;


// Calculate the Circle Area

double circlearea = 3.14159*x*x;



// Display the Square Area

cout << "\nThe area of the Square with side " << x << " is:" << squarearea << endl;


// Display the Rectangle Area

cout << "\nThe area of the Rectangle with side " << x << " is:" << rectanglearea << endl;


// Force computer to show decimal point

cout << fixed << showpoint;

// Set the decimal points into Three digits

cout << setprecision(3);


// Display the Corcle area (after setting the decimal point)

cout << "The area of the Circle with side " << x << " is:" << circlearea << endl;


// Prompt the user press any key to exit the program 

cout << "\nPress Any Key to continue ....";


//exit the program 

_getch();


//return 0 to show end of execution

return 0;

}


الگوریتم

تا اینجا فهمیدم که زبان سی پلاس پلاس یک زبان نسل سومی هست که ویژوال سی پلاس پلاس هم نسل پنجم است 


اما الگوریتم 

a step-by-step problem-solving process that reaches a solution in a finite amount of time

به معنی یک راه حل قدم به قدم به طور خلاصه ، که برای حل مسائل و مخصوصا در برنامه نویسی خیلی لازم است 


وقتی شما میخواهی درباره یک موضوع خاص برنامه ای بنویسی باید مراحل زیر رو بگذرونی تا بتونی یک برنامه خوب و کامل درست کنی 

1- قدم اول اینه که مشکل رو تجزیه و تحلیل کنید. مشکل چی هست؟ چه چیزهایی نیاز داریم برای رفع این مشکل؟ چه مراحلی به طور کلی باید طی بشه؟

2- تهیه الگوریتم، و نوشتن کدهای مربوطه بر اساس آن

3- ایجاد اصلاحات و تغییرات در برنامه