เกรียนไทยยังชิดซ้าย คุณครูยังอายม้วน เมื่อเจอเด็กนอก ทำข้อสอบ อย่างฮา 555 ++ ...ถ้าตอบตามรูป อาจารย์ให้คะแนน 0 นะ
จะได้คะแนนควรตอบแบบนี้
1) ภาษา C++ มีที่มาจากภาษา C และก็เป็นซุปเปอร์เซต (Superset) ของ C
2) เริ่มต้นทีเดียว C++ จะรู้จักกันว่ามันคือ ภาษา c ที่มีคลาส (class)
3) ใน C++ ได้มีการเปลี่ยนแปลงครั้งใหญ่ โดยการเพิ่มคลาส และมีกลไกลการสืบทอดคลาสของออบเจ็กต์ ไปยังคลาสอื่น ๆ ได้
4) โปรแกรมที่เขียนด้วย C ส่วนใหญ่ สามารถคอมไพล์ด้วย คอมไพลเลอร์ของภาษา C++
5) นิพจน์ (expressions) ใน C++ จะเหมือนในภาษา C
6) ตัวดำเนินการ (operators) ของภาษา C ทั้งหมด สามารถใช้ได้ใน C++
7) ชื่ออย่างไม่เป็นทางการของมาตรฐาน C++ รุ่นใหม่คือ C++14 ประกาศเมื่อ 2014 แต่ในปี 2017 แพลนจะออกเป็นมาตรฐาน C++17 หรือ C++1z
ข้อแตกต่างระหว่าง ภาษา C กับ C++ ทั้งหมด15 ข้อ (เป็นแค่ตัวอย่าง)
####### ภาษา C
1) เป็นภาษาเชิงกระบวนการ (Procedural Language)
2) ไม่มี virtual Functions
3) ไม่มี Polymorphism
4) ไม่มี Operator overloading
5) การออกแบบโปรแกรมเป็นวิธีจากบนลงล่าง "Top down"
6) ไม่มี namespace
7) อนุญาตให้การประกาศตัวแปรโกลบอล (global variables)
8) scanf() ใช้เป็นอินพุต และ printf() ใช้เป็นเอาท์พุต
9) mapping ระหว่างข้อมูลกับฟังก์ชัน จะยากและซ้ำซ้อน
10) สามารถเรียก main() ผ่านฟังก์ชั่นอื่นได้
11) ตัวแปรทั้งหมดต้องประกาศตั้งแต่แรก เมื่อเริ่มเขียนโปรแกรม
12) ไม่มี inheritance
13) malloc() กับ calloc() ใช้จัดสรรหน่วยความ ส่วน free() ใช้ยกเลิกหน่วยความจำที่จัดสรร
14) มีทั้งชนิดข้อมูลแบบ built-in กับแบบพื้นฐาน (primitive data types)
15) ไม่มีกลไกล Exception Handling
####### ภาษา C++
1) เป็นภาษาเชิงวัตถุ (Object oriented Language)
2) มีใช้ virtual Functions
3) มีใช้ Polymorphism ซึ่งเป็นฟีเจอร์สำคัญมากใน OOP
4) Operator overloading เป็นหนึ่งในฟีเจอร์ที่จำเป็น
5) การออกแบบโปรแกรมเป็นวิธีจากล่างไปสู่บน "Bottom up"
6) ใช้ namespace เพื่อหลีกเลี่ยงชื่อซ้ำกัน
7) ไม่อนุญาตให้การประกาศตัวแปรโกลบอล
8) Cin>> ใช้เป็นอินพุต และ Cout<< ใช้เป็นเอาท์พุต
9) mapping ระหว่างข้อมูลกับฟังก์ชัน โดยทำเป็น Objects
10) ไม่สามารถเรียก main() ผ่านฟังก์ชั่นใด ๆ ได้
11) สามารถประกาศตัวแปรที่ใดก็ได้ โดยขอให้อยู่ใน scope ของการเรียกใช้งานครั้งแรก
12) มี inheritance
13) มีตัวดำเนินการอย่าง new กับ delete เพื่อใช้จัดสรรหน่วยความ และยกเลิกหน่วยความจำที่จัดสรร
14) มีทั้งชนิดข้อมูลแบบ built-in กับ define data types
15) มี Exception Handling โดยใช้ Try กับ Catch Block
ข้อแตกต่างมากกว่านี้ ก็ตามลิงค์นี้ (เครดิตคุณ Santi Lertpichitkul)
http://david.tribble.com/text/cdiffs.htm
ที่มา http://www.patanasongsivilai.com/…/เกรียนไทยยังชิดซ้าย-คุณ…/
http://loledhard.com/real-programmers-what-is-difference-be…
c scanf 在 紀老師程式教學網 Facebook 的最佳貼文
[網友來信] 我開始背誦 C 語言 32 個關鍵字了,為何我還學不會 C 語言?
常常有網友用私訊詢問問題,我通常會抹消個資、稍做修改後,登出來分享給可能有同樣疑惑的人。底下是昨天一位網友問我關於「C 語言學習」的問題,希望我提供給這位網友的解答,也能幫助到有相同困惑的朋友。 :-)
紀老師
-------
老師你好!
我最近開始學習C語言,我之前常常看C語言介紹影片,知道 C 語言有 32個關鍵字,9種控制語句,34種運算符號。有人說這些背不起來就不用學C語言了,但我的記憶力不太好,我是否真的只能放棄呢?我非常熱愛軟體類型的事物或資訊,我不想就這樣算了。
我有在網路上找到一本C語言教學書本:(URL 恕略)可是我真的不了解,簡單說有看沒有懂。我開始覺得我到底適不適合學習C語言?我常在想那麼多的中文字我都記的起來,為什麼我卻背不起來C語言的所有關鍵字?目前我在背32個關鍵字中的15個。我洗澡背、吃飯背、上網也在背、看影片也一直背。起床第一時間就重頭背一次,就怕我忘記。
我不知道有什麼好的管道可以吸收學習?也不知道我的方法對不對,我僅僅只靠網路上的資源收集資料。原本我想購買書籍可是不知道該買哪本。就在網路上找到上面網址的那一本,可是我卻看不懂、不了解,我真的不知道該從哪開始了。
[紀老師回答]
您好:
您的學習方法錯了!
「程式語言」不是一種「知識(Knowledge)」,是一種「技能(Skill)」。所謂的知識,是只要「記下來」,就能使用了。例如歷史、地理等課程。所謂的「技能」,是要透過「實戰」學會的,像是游泳、騎腳踏車。
您的作法,有點像是「我已經把一本游泳入門背得滾瓜爛熟了,我洗澡背、吃飯背、上網也在背,為什麼我下水後還是不會游泳?」或者像是「我已經把九陰真經背得滾瓜爛熟了,為什麼我還是學不會絕世武功?」所以,你去背誦 32 個關鍵字,希望透過這種方法學會程式語言,並非一個很正確的作法。
很多人都誤會程式語言是一種「知識」,以為用力背就會了。事實上它是一種「技能」。凡是技能類的東西,除非你天縱英才,否則初學者都得找「教練」來學比較好。第一次學游泳,你會買一本游泳入門,然後看著書自己學嗎?不會吧?你會找個會游泳的人教。但是一旦學會「蛙式」或是「自由式」,您接下來就會自學「仰式」或「蝶式」了。所以(重點!),看書自學,比較適合有程式設計經驗的人,不太適合完全沒有程式設計經驗的人。
當然我沒有說,所有人一定沒辦法靠著自學學會程式設計。但是,如果您已經嘗試自學,效果不好,您是否考慮去補習班找個老師好好教您一次呢?所以,不要因為你背完「游泳入門」,下水嗆水,就篤定自己「不適合學游泳」。那只不過你學習方法不對而已。去補習班學一次很值得的,因為當你有了基礎,接下來其它語言,就有很高的機率看書自學、並且精通了!
此外,雖然程式設計是用英文呈現,但是跟英文程度好壞沒有太大的關係。因為它們用的「字彙」(如:printf(), scanf()...之類的),根本不是日常英文。語法也非英文文法。最有力的證據是,你叫一個以英語為母語、沒學過程式的外國人來看程式碼,保證 100% 看不懂!程式設計只是一種假借 26 個英文字母,拼寫出來的另一國度的語言而已。人人只要花時間、付出努力(約 6 ~ 9 個月,每週花 6~8 小時左右),都一定學得會。
所以,根據您的情況,我對於您「不知道如何開始」的建議是:去補習班找個老師,好好學一次。然後,老師教的東西,一定要回家「傻傻地」遮起答案,再練一次。這個步驟猶如游泳教練教完後,您自行練習的過程。這是把「程式設計」這個技術,固定在你身體裡的重要步驟,請千萬一定要「傻傻地」、「私下另外找時間」照做。不要有「為什麼教練教完,我也跟著教練練過一遍了,為什麼我還不會游泳?」這種不切實際的想法。
如果您真的還是想要找一本入門書的話,我可以推薦這一本,還不錯:
http://www.books.com.tw/products/0010360466
希望這樣的回答能對您有幫助!
c scanf 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
ภาษาโปรแกรมมิ่ง C กับ C++ แตกต่างกันอย่างไร ?
ดูเด็กฝรั่งมันตอบ เล่นเอาฮาเลยทีเดียว 555+
เจอแบบนี้แล้ว
"เกรียนไทยยังชิดซ้าย คุณครูยังอายม้วน"
ภาษา C
1) มีเพียงตัว 'C'
2) ออกเสียงเป็น "ซี"
3) เคยเรียนในเทอม 1
4) มีเพียงตัวอักษรเดียว คือ 'C'
5) มันคือ "a little hardware oriented"
6) เราใช้คำสั่งอย่าง cin cout และอื่น ๆ
7) สอนโดย GOBIND Sir
ภาษา C++
1) มีตัว 'C' ตามด้วย '++'
2) ออกเสียงเป็น "ซี พลัส พลัส"
3) อยู่ในเทอม 2
4) มี 3 ตัวอักษร ได้แก่ 'c' '+' '+'
5) มันไม่ใช่ "a little hardware oriented"
6) เราใช้คำสั่งอย่าง printf scanf และอื่น ๆ
7) สอนโดย ROSY Maam
เล่นตอบเสียชื่อสถาบัน #โปรแกรมเมอร์ หมด
คลิก --> http://www.patanasongsivilai.com/…/เกรียนไทยยังชิดซ้าย-คุณ…/
###################
ติดตามสาระ ความรู้เกี่ยวกับโปรแกรมเมอร์ + สาระทางคอมได้ที่เพจ
https://www.facebook.com/programmerthai
By Patana Admin
c scanf 在 [問題] scanf函數的回傳值- 看板C_and_CPP 的美食出口停車場
以下是C scanf函式的原型
函式原型:int scanf ( const char * format, ... );
引數說明:%[*][width][modifiers]type
%[*][寬度][長度修飾]資料型態
傳回值:成功配對之引數數目,失敗時將傳回 EOF
請問下面這兩支程式作對比
兩支程式執行後在命令提示字元下輸入相同格式
ss(整數) (整數)
第一支程式scanf函式回傳為TURE
可是第二支程式的第二個scanf函式回傳值卻是FALSE
是甚麼原因?
是因為scanf格式輸入錯誤?
如果是編譯怎麼會成功呢??
感謝!!!
(1).
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int b,c;
printf("請輸入整數:");
c=scanf("ss%d",&b);
printf("\n\nscanf的回傳值為%d\n\n",c);
printf("\n\n你的輸入為%d\n\n",b);
system("pause");
return 0;
}
(2).
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int a,b,c;
printf("請輸入整數:");
scanf("%d",&a);
printf("\n\n你的輸入為%d\n\n",a);
printf("請輸入整數:");
c=scanf("ss%d",&b);
printf("\n\n第二個scanf的回傳值為%d",c);
printf("\n\n你的輸入為%d\n\n",b);
system("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.231.238
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1557132145.A.440.html
※ 編輯: a27839579 (223.137.231.238), 05/07/2019 17:06:10
... <看更多>