Mọi người cho hỏi 1 câu hơi ngoài lề 1 chút . Hiện tai em sắp xong cái bằng CD về phần mềm nhưng thấy rằng không thực sự thích ngành này , thích về đồ họa hơn nhưng vẫn chưa biết bắt đầu từ đâu . Mọi người cho lời khuyên giúp :)
Cho mình nhờ 1 chút . Mình đang muốn tìm hiểu về lập trình các vi điều khiển trong các mạch điện tử . Bạn nào có tài liệu thì share cho mình với nhé . Từ A đến Z là ngon vì mình chưa biết 1 tý gì về cái này . Thx :) Bạn nào có tài liệu cơ bản về khoản mạch điện tử thì cũng cho mình luôn nhé :)
em đang học C# và VB , thằng bạn em nó khuyên học VB trc rồi học C# thì dễ hơn , bác nào có kinh nghiệm rồi có thể cho em lời khuyên nên học gì trước được không ạ , em thấy học cả 2 1 lúc lẫn lộn quá :(
cả 2 đều thuộc lập trình .net ,có rất nhiều điểm tương đồng ,học vb trc rồi học c# sẽ dễ hơn nhưng chắc bạn tự học ở nhà hả ,tự học thì học cả 2 1 lúc làm gì (học làm sao đc),học c# luôn ,nó có tính ứng dụng cao và dễ kiếm tiền hơn
Có ai biết chỗ nào chuyên dạy về lập trình ở TPHCM ko giúp mình với, đang dự định học Java hay C# gì đấy, ở trường nó chỉ dạy tổng quát mỗi phần mở đầu (lập trình tính toán đơn giản), đang muốn học chuyên sâu :(
Mình đang làm bài tập xây dựng chương trình quản lý sinh viên đơn giản sử dụng danh sách liên kết đôi: Mã: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> struct dlinklist { struct dlinklist *prev; /** Stores address of previous node **/ int masv; /** stores roll number **/ char hovaten[30]; /** stores Name **/ float diemk1; float diemk2; /** stores Marks **/ struct dlinklist *next; /** stores address of next node **/ }; /** Redefining dlinklist as node **/ typedef struct dlinklist node; void init(node*); /** Input function **/ void disp(node*); /** Function for displaying node **/ void namesrch(node*); /** Function for searching node by name **/ void main() { node *head; char ch; /* Choice inputing varible */ int opt; /* Option inputing variable*/ static int flag=0; /* Unchanged after iniialization */ head=(node*)malloc(sizeof(node)); head->next=NULL; head->prev=NULL; do { again: printf("\nNhap vao yeu cau cua ban:\n"); printf("\n1. Nhap sdu lieu vao danh sach\n"); printf("\n2. Dien thi du lieu\n"); printf("\n3. Tim kiem ket qua\n"); scanf("%d",&opt); if(flag==0 && opt!=1) { printf("\nNo. You must first initialize at least one node\n"); goto again; } if(flag==1 && opt==1) { printf("\nInitialisation can occur only once.\n"); printf("\nNow you can insert a node\n"); goto again; } if(opt==4 && head->next==NULL) { printf("\nYou cannot delete the one and only the single node\n"); goto again; } if(flag==0 && opt==1) flag=1; switch(opt) { case 1: init(head); break; case 2: disp(head); break; case 3: namesrch(head); break; } printf("\nBan co muon tiep tuc[y/n]\n"); ch=getche(); }while(ch=='Y' || ch=='y'); printf("\nPress any key to exit\n"); } void init(node *current) { current->prev=NULL; printf("\nNhap vao SHSV:\n"); scanf("%d",¤t->masv); printf("\nNhap vao ten sinh vien:\n"); fflush(stdin); gets(current->hovaten); printf("\nNhap vao diem Ky 1:\n"); scanf("%f",¤t->diemk1); current->next=NULL; printf("\nNhap vao diem Ky 2:\n"); scanf("%f",¤t->diemk2); current->next=NULL; } void namesrch(node *current) { char arr[20]; printf("\nNhap vao ten sinh vien can tim: \n"); fflush(stdin); gets(arr); while(current->next!=NULL) { if(strcmp(current->hovaten,arr)==NULL) printf("\n%d\t%s\t%f\n",current->masv,current->hovaten,current->diemk1,current->diemk2); current=current->next; } if(current->next==NULL && strcmp(current->hovaten,arr)==NULL) printf("\n%d\t%s\t%f\n",current->masv,current->hovaten,current->diemk1,current->diemk2); } void disp(node *current) { while(current!=NULL) { printf("\n%d\t%s\t%f",current->masv,current->hovaten,current->diemk1,current->diemk2); current=current->next; } } Cho mình hỏi để có thể nhập thêm một sinh viên nữa(tức là thêm một node nữa) thì làm thế nào, bài của mình bây h chỉ có thể nhâp 1 sinh viên , với lại có thể xây dựng giùm mình cái hàm sắp xếp và in ra danh sách sinh viên đã nhập theo họ và tên đc không ?
Thêm node thì như sau cur là node đang xét, mở đầu nó là head Nhập vào 1 node* gọi là newNode cur->next=newNode newNode->prev=cur newNode->next=null Sắp xếp thì làm bubble sort đi, đảo 2 node thì đổi các con trỏ liên quan đến nó là được btw, bài tập nên viết cho nó trong sáng 1 tí, kĩ năng lập trình quan trọng nhất đấy
Mã: #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> struct thongtin { char hoten[30]; char malop[12]; int masv; float diemk1; float diemk2; }; struct sv { struct thongtin infor; sv *next; sv *pret; }; struct listsv { sv *head; sv *tail; }; void nhapds(listsv &q); void nhapmoi(listsv &q); void inds(listsv &q); void tim(listsv &q); void nhapds(listsv &q) { sv *p; char hoten[30]; char malop[12]; int masv; float diemk1; float diemk2; q.head=NULL; while(1) { printf("Nhap vao ho ten sinh vien: "); gets(hoten); if(hoten[0]==0)break; if(q.head==NULL) { p=(sv*)malloc(sizeof(sv)); q.head=p; } else { p->next=(sv*)malloc(sizeof(sv)); p=p->next; } strcpy(p->infor.hoten,hoten); printf("Nhap vao SHSV: "); scanf("%d%*c",&masv); p->infor.masv=masv; printf("Nhap vao ma lop: "); gets(p->infor.malop); printf("Nhap vao diem k1: "); scanf("%f%*c",&diemk1); p->infor.diemk1=diemk1; printf("Nhap vao diem k2: "); scanf("%f%*c",&diemk2); p->infor.diemk2=diemk2; q.tail=p; p->next=NULL; p->pret=NULL; } p=q.head; } void inds(listsv &q) { sv *p; p=q.head; while(p!=NULL) { printf("%d %12s %30s %.2f %.2f\n",p->infor.masv,p->infor.malop,p->infor.hoten,p->infor.diemk1,p->infor.diemk2); p=p->next; } } void main(void) { listsv q; nhapds(q); inds(q); timsv(); getch(); } đây là bài hiện thời của em, mới chỉ là demo chưa có menu gì cả anh có thể giúp em xây dựng hàm tim kiếm sinh viên theo tên và hàm sắp xếp sinh viên theo tên thứ tự ABC đc không? :)
Mã: #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> struct thongtin { char hoten[30]; char malop[12]; int masv; float diemk1; float diemk2; }; struct sv { struct thongtin infor; sv *next; sv *pret; }; struct listsv { sv *head; sv *tail; }; void nhapds(listsv &q); void nhapmoi(listsv &q); void inds(listsv &q); void tim(listsv &q); void nhapds(listsv &q) { sv *p; char hoten[30]; char malop[12]; int masv; float diemk1; float diemk2; q.head=NULL; while(1) { printf("Nhap vao ho ten sinh vien: "); gets(hoten); if(hoten[0]==0)break; if(q.head==NULL) { p=(sv*)malloc(sizeof(sv)); q.head=p; } else { p->next=(sv*)malloc(sizeof(sv)); p=p->next; } strcpy(p->infor.hoten,hoten); printf("Nhap vao SHSV: "); scanf("%d%*c",&masv); p->infor.masv=masv; printf("Nhap vao ma lop: "); gets(p->infor.malop); printf("Nhap vao diem k1: "); scanf("%f%*c",&diemk1); p->infor.diemk1=diemk1; printf("Nhap vao diem k2: "); scanf("%f%*c",&diemk2); p->infor.diemk2=diemk2; q.tail=p; p->next=NULL; p->pret=NULL; } p=q.head; } void inds(listsv &q) { sv *p; p=q.head; while(p!=NULL) { printf("%d %12s %30s %.2f %.2f\n",p->infor.masv,p->infor.malop,p->infor.hoten,p->infor.diemk1,p->infor.diemk2); p=p->next; } } void main(void) { listsv q; nhapds(q); inds(q); timsv(); getch(); } đây là bài hiện thời của em, mới chỉ là demo chưa có menu gì cả anh có thể giúp em xây dựng hàm tim kiếm sinh viên theo tên và hàm sắp xếp sinh viên theo tên thứ tự ABC đc không? :)
Giờ mình lười code lắm Tìm kiếm thì rất đơn giản Bắt đầu từ con trỏ head, đại loại pseudo-code thế này curNode = head while curNode->name != sv_name or curNode->next != null: curNode = curNode->next if curNode->next==null: print "ko tim thay" else: return curNode Sắp xếp thì dùng bubble sort tự xây dựng hàm so sánh tên nhé, giả sử là compare(name,name) a = head while a!=null: b = a->next while b!=null: if compare(a,b): swap(a,b) b=b->next swap(a,b) rất đơn giản, bạn chỉ việc đảo giá trị name... hoặc đảo giá trị next,prev, cái này tùy bạn làm. Thông cảm giờ mình viết python nhiều hơn nên hay viết python pseudo-code
Mấy anh giúp dùm em cái này với, em tự học mò hoài mà không canh thẳng mấy cái * được Cho e xin code của hình đó luôn nha