Course Material
Course Material

Course Material

UsefullSoftwares


ماشین حساب مهندسی GraphTI89(دریافت .رمز:سال تولد خیام به میلادی)

برنامه ای برای گرفتن فیلم از صفحه مونیتور(Apowersoft Free Screen Recorder


برنامه ای برای عکس گرفتن از صفحه مونیتور CmdCapture (لینک کمکی)


برنامه ای کوچک برای حل دستگاه معادلات(دریافت)              System of Equations Solver 

برنامه ای کوچک برای حل مساله مقدار ویژه متقارن (دریافت) Symmetric Eigen-Problem Solver


 سایتی برای محاسبه دایره مور:(2D)و(3D)


سایتی مفید برای (رسم نمودار) (حل دستگاه معادلات خطی) به صورت آنلاین


MathStudio: نرم افزار ریاضی برای اندروید  دریافت

Maxima: نرم افزار ریاضی است که برای محاسبات پارامتری، رسم نمودار، حل معادلات و ... بکار می رود. این نرم افزار رایگان می باشد. لینک دانلود نرم افزار حدود 32 MB  ( صفحه دانلود )

Maxima آموزش(انگلیسی) حدود 5 MB


سایت مفید برای رسم کانتور در اتوکد به همرا فایل اجرایی:   http://www.ezmdd.com/ctl/ctl_note.htm

سایت مفید برای رسم کانتور  به زبان C به:  https://physiology.arizona.edu/people/secomb/contours

https://s19.picofile.com/file/8434928526/contours_c.7z.html


Batch file: در سیستم عامل ویندوز امکان برنامه نویسی به زبان خاص ویندوز وجود دارد که بسیار کاربردیست. تنها کافیست در یک فایل متنی دستورات مورد نظر را نوشته و پسوند فایل به bat. تغییر داده شود. این فایل مانند یک فایل اجرایی عمل خواهد کرد. چند دستور کاربردی در زیر ارائه می شوند:

Del f*.txt  

این دستور همه فایلهایی که باحرف f شروع می شوند را در دایرکتوری پاک می کند.

دستور زیر میست همه فایل هایی با پسوند csv را داخل فایلList.txt کپی می کند.

Dir /b *.csv >>List.txt

@echo off
setlocal enabledelayedexpansion

این دستور همه فایلهایی را که باحرف DIS شروع می شوند و پسوند jpg دارند را تغییر نام می دهد:

dir DIS*.png /a/b>tmp.txt
set /a i=0
for /f  %%b in (tmp.txt) do (
set /a i+=1
Ren "%%b" 00!i!-1.png
)
pause


 ECHO BT001 100.0,  0.0,100.0,    2400.0,6,6,0.230E+11|"FSIQ8.EXE"
 ECHO BT001.AMK  |"0-MAIN.exe"


for /f "delims=, skip=3 tokens=1,3" %%a in (REG[1]0.9.CSV) do echo %%a %%b>>mmm.txt

این دستورمحتوای فایلREG[1]0.9.CSV  را از پس از خط سوم، خط به خط خوانده و ستون اول و سوم را در فایل mmm.txt مینویسد. توجه شود در این حالت علامت "," به عنوان جدا کننده هر ستون از ستون دیگر تعریف شده است.

فایل ورودی REG[1]0.9.CSV :

      3.0614,     -0.2814,      0.3841,     -0.3418,    99.89944
      2.4491,     -0.2251,      0.3072,     -0.2733,    99.92743
      2.2677,     -0.2085,      0.2845,     -0.2530,    99.91341
      2.1113,     -0.1943,      0.2659,     -0.2365,    99.89820
      1.9751,     -0.1814,      0.2472,     -0.2201,    99.89344
      1.8553,     -0.1706,      0.2332,     -0.2075,    99.90865
      1.7493,     -0.1608,      0.2197,     -0.1955,    99.91814
      1.6548,     -0.1520,      0.2074,     -0.1846,    99.92337
      1.5307,     -0.1406,      0.1920,     -0.1709,    99.92107    


فایل خروجی mmm.txt :

      2.1113       0.2659
      1.9751       0.2472
      1.8553       0.2332
      1.7493       0.2197
      1.6548       0.2074
      1.5307       0.1920
در دستور زیر فقط از سطر سوم به بعد همه ستون ها کپی می شوند

for /f "delims=, skip=3 tokens=*" %%a in (REG[1]0.9.CSV) do echo %%a>>nnn.txt

      2.1113,     -0.1943,      0.2659,     -0.2365,    99.89820
      1.9751,     -0.1814,      0.2472,     -0.2201,    99.89344
      1.8553,     -0.1706,      0.2332,     -0.2075,    99.90865
      1.7493,     -0.1608,      0.2197,     -0.1955,    99.91814
      1.6548,     -0.1520,      0.2074,     -0.1846,    99.92337
      1.5307,     -0.1406,      0.1920,     -0.1709,    99.92107    


دستور زیر خط درمیان (شروع از خط دوم) فایل ورودی را به فایل خروجی منتقل میکند:

setlocal EnableDelayedExpansion
set /a c=0
for /f "delims=, tokens=*" %%G in (REG[1]0.9.CSV) do (
set /a c=!c!+1
if !c! ==2 (
echo %%G>>ooo.txt
set /a c=0
 )
)


      2.4491,     -0.2251,      0.3072,     -0.2733,    99.92743
      2.1113,     -0.1943,      0.2659,     -0.2365,    99.89820
      1.8553,     -0.1706,      0.2332,     -0.2075,    99.90865
      1.6548,     -0.1520,      0.2074,     -0.1846,    99.92337

دستورات زیر همه فایل های موجود در فولدر کنونی و زیر فولدری ها را که پنهان هستند به حالت عادی در می آورد

dir /a:h/b /s>tmp.txt
for /f "Delims=" %%a in (tmp.txt) do  attrib "%%a" -h


dir /a:h/b>tmp.txt
for /f  %%a in (tmp.txt) do  attrib "%%a" -s -h -r


ماکرو زیر برای تغییر رنگ همه متنهای موجود در یک فایل پاورپویت به کار می رود. ماکرو رنگ مورد نظر را به صورت سه عدد(فرمتRGB) به همره یک اندازه فونت  را دریافت می کند. سپس همه متنهایی که از آن اندازه بزرگتر باشند را به رنگ خواسته شده در می آورد.

Sub channgecolr()
' This will change the color of all PowerPoint text to the color you specify in RGB below
' It won't affect text in charts, pasted graphics, groups, etc.

Dim R As Integer
Dim G As Integer
Dim B As Integer
Dim sz As Integer

R = Val(InputBox("Please input red value"))
G = Val(InputBox("Please input green value"))
B = Val(InputBox("Please input blue value"))
sz = Val(InputBox("Effect greater than what font size"))

Dim oSld As Slide
Dim oShp As Shape
Dim oShapes As Shapes

For Each oSld In ActivePresentation.Slides
    Set oShapes = oSld.Shapes
    For Each oShp In oShapes
        If oShp.HasTextFrame Then
            If oShp.TextFrame.HasText Then
            If oShp.TextFrame2.TextRange.Font.Size > sz Then
                oShp.TextFrame.TextRange.Font.Color.RGB = RGB(R, G, B)
                End If
            End If
        End If
    Next oShp
Next oSld
End Sub
اضافه کردن نشانگر  پیشرفت اسلاید در پاورپویت
 Sub AddProgressBar()      
    On Error Resume Next      
        With ActivePresentation      
              For X = 1 To .Slides.Count      
              .Slides(X).Shapes("PB").Delete      
              Set s = .Slides(X).Shapes.AddShape(msoShapeRectangle, _      
              0, .PageSetup.SlideHeight - 12, _      
              X * .PageSetup.SlideWidth / .Slides.Count, 12)      
              s.Fill.ForeColor.RGB = RGB(200, 200, 200)      
              s.Name = "PB"      
              Next X:      
        End With      
End Sub     
گرفتن مختصات وابعاد شیء انتخاب شده  اسلاید در پاورپویت

Sub Shape_Dimensions()
'PURPOSE: Return the dimensions of a selected shape in PowerPoint
'SOURCE: www.TheSpreadsheetGuru.com
Dim L As Double
Dim T As Double
Dim H As Double
Dim W As Double
    With ActiveWindow.Selection
        If .Type = ppSelectionShapes Then
            L = .ShapeRange.Left
            T = .ShapeRange.Top
            H = .ShapeRange.Height
            W = .ShapeRange.Width
        Else
            MsgBox "You have not selected an OBJECT in PowerPoint to dimension."
            Exit Sub
        End If
    End With
'Return Dimensions to User
    MsgBox Prompt:= _
                "Left: " & L & vbNewLine & _
                "Top: " & T & vbNewLine & _
                "Height: " & H & vbNewLine & _
                "Width: " & W, _
           Title:="Dimensions"
End Sub


تغییر اندازه فونت متن هایی که  گوشه شروع کادر متن آنها در بازه ای که مختصات آن را دریافت می کند واقع شده است

Sub Shape_FontSize()
Dim oSld As Slide
Dim oShp As Shape
Dim oShapes As Shapes
Dim L1, L2, T1, T2 As Double

L1 = Val(InputBox("Please input Left Side1"))
L2 = Val(InputBox("Please input Left Side2"))
T1 = Val(InputBox("Please input Top Side1"))
T2 = Val(InputBox("Please input Top Side2"))

For Each oSld In ActivePresentation.Slides
    Set oShapes = oSld.Shapes
    For Each oShp In oShapes
   If (oShp.Left >= L1 And oShp.Left <= L1 And oShp.Top >= T1 And oShp.Top <= T2) Then
   oShp.TextFrame2.TextRange.Font.Size = 30
   End If

    Next oShp
Next oSld
End Sub


استفاده از Drag and Drop در تبدیل فایل

For %%i   in   (%1)    do     luna.exe   %%i %%i.tns


تعریف یک تابع دلخواه در 2007 Excel:

برای این کار ابتدا باید به فرمت زیر فایل را ذخیره کرد:


سپس، باید یک ماژول تعریف کرد:


داخل ماژول، تابع به زبان ویژوال بیسیک نوشته می شود. به طور مثال تابع زیر مشخصات هندسی(A,Ix,Iy,Ixy,Cx,Cy) یک چند ضلعی را با دریافت گوشه های آن محاسبه می کند:(Reference:http://paulbourke.net/geometry/polygonmesh)


Public Function Section_Prop(x As Variant) As Variant

    Dim n_pts As Integer
    Dim i As Integer
    Dim Area As Double
    Dim Cx As Double
    Dim Cy As Double
    Dim Ix As Double
    Dim Iy As Double
    Dim Ixy As Double
    Dim PROP_OUT As Variant


If TypeName(x) = "Range" Then x = x.Value2

    n_pts = UBound(x, 1)
    Area = 0
    Cx = 0
    Cy = 0
    Ix = 0
    Iy = 0
    Ixy = 0

    For i = 1 To (n_pts - 1)
        Area = Area + (x(i, 1) * x(i + 1, 2) - x(i + 1, 1) * x(i, 2))
        Cx = Cx + (x(i, 1) + x(i + 1, 1)) * (x(i, 1) * x(i + 1, 2) - x(i + 1, 1) * x(i, 2))
        Cy = Cy + (x(i, 2) + x(i + 1, 2)) * (x(i, 1) * x(i + 1, 2) - x(i + 1, 1) * x(i, 2))
        Ix = Ix + (x(i, 2) ^ 2 + x(i, 2) * x(i + 1, 2) + x(i + 1, 2) ^ 2) * (x(i, 1) * x(i + 1, 2) - x(i + 1, 1) * x(i, 2))
        Iy = Iy + (x(i, 1) ^ 2 + x(i, 1) * x(i + 1, 1) + x(i + 1, 1) ^ 2) * (x(i, 1) * x(i + 1, 2) - x(i + 1, 1) * x(i, 2))
        Ixy = Ixy + (x(i, 1) * x(i + 1, 2) + 2 * x(i, 1) * x(i, 2) + 2 * x(i + 1, 1) * x(i + 1, 2) + x(i + 1, 1) * x(i, 2)) * (x(i, 1) * x(i + 1, 2) - x(i + 1, 1) * x(i, 2))
    Next
    i = n_pts
    Area = Area + (x(i, 1) * x(1, 2) - x(1, 1) * x(i, 2))
    Cx = Cx + (x(i, 1) + x(1, 1)) * (x(i, 1) * x(1, 2) - x(1, 1) * x(i, 2))
    Cy = Cy + (x(i, 2) + x(1, 2)) * (x(i, 1) * x(1, 2) - x(1, 1) * x(i, 2))
    Ix = Ix + (x(i, 2) ^ 2 + x(i, 2) * x(1, 2) + x(1, 2) ^ 2) * (x(i, 1) * x(1, 2) - x(1, 1) * x(i, 2))
    Iy = Iy + (x(i, 1) ^ 2 + x(i, 1) * x(1, 1) + x(1, 1) ^ 2) * (x(i, 1) * x(1, 2) - x(1, 1) * x(i, 2))
    Ixy = Ixy + (x(i, 1) * x(1, 2) + 2 * x(i, 1) * x(i, 2) + 2 * x(1, 1) * x(1, 2) + x(1, 1) * x(i, 2)) * (x(i, 1) * x(1, 2) - x(1, 1) * x(i, 2))


    Area = Area / 2
    Cx = Cx / (6 * Area)
    Cy = Cy / (6 * Area)
    Ix = Ix / 12
    Iy = Iy / 12
    Ixy = Ixy / 24


    ReDim PROP_OUT(1 To 6, 1 To 2) As Variant
    PROP_OUT(1, 1) = "Area"
    PROP_OUT(2, 1) = "Cx"
    PROP_OUT(3, 1) = "Cy"
    PROP_OUT(4, 1) = "Ix"
    PROP_OUT(5, 1) = "Iy"
    PROP_OUT(6, 1) = "Ixy"
   
    PROP_OUT(1, 2) = Area
    PROP_OUT(2, 2) = Cx
    PROP_OUT(3, 2) = Cy
    PROP_OUT(4, 2) = Ix
    PROP_OUT(5, 2) = Iy
    PROP_OUT(6, 2) = Ixy

    Section_Prop = PROP_OUT
End Function

پس از ذخیره کردن ماژول، تابع را می توان در Excel فراخوانی نمود:

برای اجرای ماکرو از  کلید های  Ctrl+Shift+Enter همزمان استفاده شود.

دقت شود که برای اجرا می بایست ماکرو را فعال نمود:


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

Private Sub CommandButton1_Click()
Dim Filename As String
Dim stOutput As String, stNextLine As String, stSeparator As String
Dim stFilename As String, stEncoding As String
Dim fso As Object
Filename = ThisWorkbook.Path & "\textfile.txt"
'-------------------------------------------------------------------------------------
'Set Rng = ActiveSheet.UsedRange 'this is the range which will be written to text file
stFilename = Filename      'this is the text file path / name
stSeparator = vbTab         'e.g. for comma seperated value, change this to ","
stEncoding = "UTF-8"           'e.g. "UTF-8", "ASCII"
'-----------------------------------------------------------------------
  stOutput = ""
      For i = 1 To 39
    stOutput = stOutput & vbCrLf & "BEGIN:VCARD"
    stOutput = stOutput & vbCrLf & "VERSION:2.1"
    stOutput = stOutput & vbCrLf & "N:" & "Khy" & i & ";" & Cells(i, 1)
    stOutput = stOutput & vbCrLf & "FN:" & Cells(i, 1)
    stOutput = stOutput & vbCrLf & "TEL;CELL:+" & Cells(i, 2)
    stOutput = stOutput & vbCrLf & "END:VCARD"
     Next i
Set fso = CreateObject("ADODB.Stream")
With fso
    .Type = 2
    .Charset = stEncoding
    .Open
    .WriteText stOutput
    .SaveToFile stFilename, 2
End With
Set fso = Nothing
     End Sub