русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Пользователь вводит расстояние. Подсчитать стоимость одного билета.


Дата додавання: 2014-11-27; переглядів: 895.


Завдання: створити програму, яка б забезпечувала створення, перегляд, доповнення та вилучення даних з файлу, що містить інформацію про учнів в школі у вигляді: ім’я, прізвище, клас, рік навчання. Організувати пошук учнів, які мають однакове ім’я та прізвище і навчаються в одному клачсі.

Виконання завдання

Алгоритм рішення

 

Програма рішення.

 

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

struct ant

{char im[30];

char fam[50];

char kls[2];

char rik[256];};

FILE *f,*g;

ant x;

//створення

void stv(void)

{ if ((f=fopen("x.dat","w"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть інформацію про учня:\n";

do

{cout<<"\nВведіть імя учня: ";

cin>>x.im;

cout<<"\nВведіть прізвище учня: ";

cin>>x.fam;

cout<<"\nВведіть клас: ";

cin>>x.kls;

cout<<"\nВведіть рік навчасння : ";

cin>>x.rik;

fwrite(&x,sizeof(x),1,f);}

while(getch()!=27);

fclose(f);}

//доповнення

void dod(void)

{ if ((f=fopen("x.dat","a"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть інформацію про учня:\n";

do

{cout<<"\nВведіть імя учня: ";

cin>>x.im;

cout<<"\nВведіть прізвище учня: ";

cin>>x.fam;

cout<<"\nВведіть клас: ";

cin>>x.kls;

cout<<"\nВведіть рік навчасння (буквами): ";

cin>>x.rik;

fwrite(&x,sizeof(x),1,f);}

while(getch()!=27);

fclose(f);}

//перегляд

void per(void)

{ if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\n Інформація про учня:\n";

while(fread(&x,sizeof(x),1,f)!=NULL)

{cout<<"\nімя учня: ";

cout<<x.im;

cout<<"\nпрізвище учня: ";

cout<<x.fam<<"\n";

cout<<"\nклас: ";

cout<<x.kls;

cout<<"\nрік навчасння (буквами): ";

cout<<x.rik;

getch();}

fclose(f);}

//вилучення

void del(void)

{ if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

if((g=fopen("x1.dat","w"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\n Інформація про учнів: \n";

while(fread(&x,sizeof(x),1,f)!=NULL)

{cout<<"\nІмя учня: ";

cout<<x.im;

cout<<"\nПрізвище учня: ";

cout<<x.fam;

cout<<"\nКлас: ";

cout<<x.kls;

cout<<"\nРік навчасння (буквами): ";

cout<<x.rik;

getch();

cout<<"\n\n Вилучати(y/n)?";

if(getch()=='n') fwrite(&x,sizeof(x),1,g);}

fclose(f);

fclose(g);

unlink("x.dat");

rename("x1.dat","x.dat");}

void posh(void)

{ char s1[40],s2[50],s3[10];

if ((f=fopen("x.dat","r"))==NULL)

{perror("Файл вже існує");

getch();

exit(1);}

cout<<"\nВведіть імя для пошуку:";

cin>>s1;

cout<<"\nВведіть прізвище для пошуку:";

cin>>s2;

{cout<<"\nКлас: ";

cin>>s3;

while(fread(&x,sizeof(x),1,f)!=NULL)

if((strcmp(s1,x.im)==0)&&(strcmp(s2,x.fam)==0)&&(strcmp(s3,x.kls)==0))

cout<<"\nРік навчасння (буквами): ";

cout<<x.rik; }

getch();

}

#pragma argsused

int main(int argc, char* argv[])

{SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int r;clrscr();

do

{clrscr();

cout<<"\n\n\n\t\t Головне меню \n\t1-Створеня\n\t2-Перегляд";

cout<<"\n\t3-Доповнення\n\t4-Вилучення\n\t5-Пошук\n\t6-Вихід\n\t Вкажіть

cin>>r;

switch(r)

{case 1:{stv();break;}

case 2:{per();break;}

case 3:{dod();break;}

case 4:{del();break;}

case 5:{posh();break;}

case 6: exit(1);} }

while(1);

return 0;

}

 

 

Рисунок 2.6.2 – Вікно результатів роботи програми

(функція створення файлу)

 

Рисунок 2.6.3 – Вікно результатів роботи програми

(функція перегляду файлу)

 

Рисунок 2.6.4 – Вікно результатів роботи програми

(функція доповнення файлу)

 

Рисунок 2.6.5 – Вікно результатів роботи програми

(функція вилучення даних з файлу)

Рисунок 2.6.6 – Вікно результатів роботи програми

 

 

Пользователь вводит расстояние. Подсчитать стоимость одного билета.

Стоимость X, Y, Z можно определить в разделе констант или в программе присвоить им конкретные значения.


ВАРИАНТ 17

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

 

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

 

Var a, b, K, L, F, x: integer;

Begin

a: = -6;

b: = 6;

L: = 2 * (8 + a) * (a - 2);

For x: = a to b do

begin

F: = 2 * (8 + x) * (x - 2);

If F < L then begin

L: = F;

K: = x;

end;

end;

writelen (K, L);

end.

 

Задание 3. Представим массив в виде квадратной матрицы, в которой для элемента a[i, j] i - номер строки, j – номер столбца. Значения двумерного массива задаются с помощью вложенного оператора цикла.

s: = 0:

for i:=1 to 9 do

for j:=1 to 9 do

begin

a[i, j]: = i + j -3;

if a[i, j] < 0 then s: = s + 1;

end;

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Чему будет равно значение s?

 

Задание 4.На складе хранения штучных товаров оплата за хранение производится следующим образом:

· Если срок хранение одной единицы товара не превышает две недели, то стоимость хранения обходится в Х руб. в день,

· В противном случае платится Y руб. за одну штуку за каждые полные 5 дней. Неполная пятидневка в конце срока хранения приравнивается к полной. Считая заданным срок хранения партии товара (в днях) и количество штук товара в партии, подсчитать стоимость ее хранения.


ВАРИАНТ 18

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

Var x, a, b : integer;

Begin

a: = 0; b: = 1; x: = 1751;

while x > 0 do

begin

a: = a + 2;

b: = b + 2 * (x mod 10);

x: = x div 10;

end;

b: = b – 15;

writeln (a, b);

end.

 

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 1 до 7. Ниже представлен фрагмент этой программы, в котором значения элементов массива

сначала задаются, а затем меняются.

for i:=0 to 6 do

A[i + 1]:= i * i;

for i:=2 to 7 do

A[i]:=A[i – 1] / A[i];

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Как изменятся элементы этого массива после выполнения фрагмента программы?

1) значение каждого элемента уменьшится на 1 и сдвинуться на 1 влево

2) все элементы окажутся равными своему индексу

3) все элементы окажутся равны -0

4) все элементы окажутся равны -1

Задание 4.Пусть некоторая страховая компания предлагает услугу по страхованию детей не старше 16 лет по следующим правилам. Когда страхуется девочка в возрасте до 5 лет включительно, страховой взнос равен 2.2% от суммы страховки. При возрасте девочки от 5 лет до 10 лет (включая возраст 10 лет) страховой взнос составляет 1.5%. Наконец, когда девочка старше 10 лет, то страховой взнос равен 1.75% для страховой суммы, не превышающей 200тыс. руб., и составляет 2%, когда сумма страховки больше 200тыс.

Подсчитать страховой взнос при заключении одного договора на страхование ребенка. Составить программу. Возраст ребёнка и страховая сумма запрашивается в программе и вводится пользователем

 


ВАРИАНТ 19

1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

var x, L, M: integer;

begin

readln(x);

L := 0; M := 0; x: = 777;

while x>0 do

begin

L := L+1;

if M < (x mod 10) then

begin

M := x mod 10;

end;

x := x div 10;

end;

writeln(L); write(M);

end.

 

Задание 3. Значения двух массивов a[1 … 10] и b[1 … 10] задаются с помощью следующего фрагмента программы:

k: = 2;

for i:=1 to 10 do

begin

A[i]:= i + 1;

B[i]:= 0;

end;

for i:=1 to 5 do

begin

B[k]:=A[11 - k] ;

k: = k + 2;

end;

· Как изменятся элементы массива A после выполнения фрагмента программы?

· Что выполняет данный алгоритм:

1. Заполняет четные элементы массива В значениями нечётных элементов массива А

2. Меняет местами первые 5 элементов массива А с последними 5 элементами массива В

3. Заполняет элементы массива В значениями элементов массива А в обратном порядке

4. Меняет местами первый элемент массива А с последними элементом массива В

 

Задание4. Написать программу, в которой с клавиатуры считываются координаты точки на плоскости (х, y – действительные числа) и проверяется принадлежность этой точки к закрашенной области.


ВАРИАНТ 20

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

 

Var a, b, K, L, F, x: integer;

Begin

a: = -6;

b: = 6;

L: = 2 * (8 + a) * (a - 2);

For x: = a to b do

begin

F: = 2 * (8 + x) * (x - 2);

If F < L then begin

L: = F;

K: = x;

end;

end;

writelen (K, L);

end.

 

Задание 3. Представим массив в виде квадратной матрицы, в которой для элемента a[i, j] i - номер строки, j – номер столбца. Значения двумерного массива задаются с помощью вложенного оператора цикла.

for i:=1 to 9 do

for j:=1 to 9 do

begin

a[i, j]: = i + j *2;

if a[i, j] mod 2 = 0 then s: = s + 1;

end;

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Чему будет равно значение s?

Задание 4. Вводится целое число N. Если число четное определить сумму и его цифр. В противном случае – произведение.


ВАРИАНТ 21

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу

 

 

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

 

Var x, a, b : longint;

Begin

a: = 0; b: = 0; x: = 65432;

while x > 0 do

begin

a: = a + 1;

if x mod 10 <= 4 then b: = b + (x mod 10);

x: = x div 10;

end;

b: = 27 - b;

writeln (a, b);

end.

 

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 0 до 12. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

for i:=0 to 12 do

A[i]:=2 * i - 1;

for i:=1 to 12 do

A[i]:=A[i – 1];

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Как изменятся элементы этого массива после выполнения фрагмента программы?

1) значение каждого элемента уменьшится на 1

2) все элементы, кроме последнего, будут сдвинуты на один элемент вправо

3) все элементы окажутся равны -1

4) всеэлементы, кроме первого, будут сдвинуты на один элемент влево.

 

Задание 4. До экзамена осталось Х дней. Студент готовит Y вопросов в первый день, а в каждый последующий день он готовит на Z вопросов больше (или меньше). Успеет ли студент подготовить все D вопросов к экзамену?


ВАРИАНТ 22

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

 

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

Var x, a, b : integer;

Begin

a: = 0; b: = 0; x: = 65432;

while x > 0 do

begin

a: = a + 1;

if x mod 10 <= 4 then b: = b + (x mod 10);

x: = x div 10;

end;

b: = 27 - b;

writeln (a, b);

end.

Задание 3. Значения двух массивов a[1 … 10] и b[1 … 10] задаются с помощью следующего фрагмента программы:

k: = 2;

for i:=1 to 10 do

begin

A[i]:= i + 1;

B[i]:= 0;

end;

for i:=1 to 5 do

begin

B[i]:=A[11 - k] ;

k: = k + 2;

end;

· Как изменятся элементы массива A после выполнения фрагмента программы?

· Чему будут равны элементы этого массива B после выполнения фрагмента программы?

 

Задание 4. Пользователь вводит четырехзначное число. Составить программу, которая выводит на экран число, полученное при перестановке первой и последней и второй и третьей цифр заданного числа. Извлечь квадратный корень полученного числа.


ВАРИАНТ 23

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

 

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

 

Var a, b, K, L, F, x: integer;

Begin

a: = -6;

b: = 6;

K: = 0;

L: = (3 - a) * (a + 7) – 1;

For x: = a to b do

begin

F: = (3 - x) * (x + 7) – 1;

If F > L then begin

L: = F;

K: = K + 1;

end;

end;

writelen (K);

end.

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 1 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

for i:=1 to 10 do

A[i] := i - 5;

for i:=1 to 5 do

begin

A[10 - i] := A[i];

A[5 + i] := A[i];

end;

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Сколько элементов массива примут отрицательные значения?

·

Задание 4.Пользователь вводит действительные числа a, b, c,.d. Если а > b > c > d, то все числа заменяются их квадратами, в противном случае меньшее из них заменить суммой оставшихся значений.

 


 

ВАРИАНТ 24

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу.

 
 

 

 


Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

Var x, a, b, P, K: integer;

Begin

P: = 8; K: = 0;

a: = 0; b: = 0; x: = 7005; y = 773;

while x > 0 do

begin

a: = (x mod 10) + (y mod 10) + K;

if a >= P then

begin

a: = a mod P;

K: = a div P;

end

else K: = 0;

x: = x div 10;

y: = y div 10;

b: = b + a + K;

end;

writeln (a, b);

end.

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 0 до 12. Ниже представлен фрагмент этой программы, в котором значения элементов массива

сначала задаются, а затем меняются.

for i:=0 to 12 do

A[i]:=i - 2;

for i:=12 downto 2 do

A[i-2]:=A[i];

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Как изменятся элементы этого массива после выполнения фрагмента программы?

1) значение каждого элемента уменьшится на 2

2) четные элементы окажутся равны 1, нечетные – 1

3) все элементы, кроме двух последних, будут сдвинуты на два элемент вправо

4) четные элементы окажутся равны 10, нечетные – 9

Задание 4. Банк меняет на рубли 3 вида валюты: американские доллары, немецкие марки и евро. Курс валюты вводится в программе пользователем. Кроме того у пользователя запрашивается вид валюты и сумма обмена.

Если клиент меняет валютную сумму (не обязательно долларовую), которая превосходит по эквиваленту величину в 500 долларов, деньги меняются по курсу, который на 2% выше стандартного.

В предположении, что клиент меняет валюту только одного типа, подсчитать сумму в рублях, которую он получит при обмене.


ВАРИАНТ 25

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу

 

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

 

Var x, a, b , k: integer;

Begin

a: = 0; b: = 0; k: =0;

x: = 9530;

while x > 0 do

begin

a: = a + 1;

if (x mod 10) > 5 then

k: = k + (x mod 10) div 2

else

b: = b + (x mod 10);

x: = x div 10;

end;

writeln (a, b, k);

end.

 

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 1 до 15. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

for i:=0 to 15 do

A[i] := i - 1;

for i:=1 to 15 do

A[i] := A[i – 1];

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Как изменятся элементы этого массива после выполнения фрагмента программы?

1) значение каждого элемента уменьшится на 1

2) все элементы, кроме последнего, будут сдвинуты на один элемент вправо

3) все элементы окажутся равны -1

4) все элементы, кроме первого, будут сдвинуты на один элемент влево.

Задание 4. Вводится целое число N. Определить: количество чётных и нечётных цифр в числе.


ВАРИАНТ 26

Задание 1. Задана блок-схема. Определить значение переменной. По блок-схеме написать программу

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

Var k, r, x, y: integer;

Begin

k: = 0;

r =0;

x = 2953;

while x > 0 do

begin

k: = k + 1;

If r < x mod 10 then r = x mod 10;

If x < 10 then y = x;

x = x div 10;

end;

r: = r – y;

writelen (r, k);

end.

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 0 до 10. Ниже представлен фрагмент этой программы, в котором значения элементов массива

сначала задаются, а затем меняются.

 

for i:=0 to 10 do

A[i]:=i-1;

for i:=1 to 10 do

A[i-1]:=A[i];

A[10]:=10;

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Как изменятся элементы этого массива после выполнения фрагмента программы?

1) все элементы, кроме последнего, окажутся равны между собой

2) все элементы окажутся равны своим индексам

3) все элементы, кроме последнего, будут сдвинуты на один элемент вправо

4) все элементы, кроме последнего, уменьшатся на единицу.

 

Задание4. Написать программу, в которой с клавиатуры считываются координаты точки на плоскости (х, y – действительные числа) и проверяется принадлежность этой точки к закрашенной области.

 
 


 
 
Y = X

 

 

ВАРИАНТ 27

Задание 1. Задана блок-схема. Определить значения переменных. По блок-схеме написать программу

 

 

Задание 2. Дан фрагмент программы. Определить, что будет выдано на печать в результате работы программы. Нарисовать блок-схему.

Var x, a, b : integer;

Begin

a: = 0; b: = 1; x: = 31324;

while x > 0 do

begin

a: = a + 2;

b: = b + 10 - (x mod 10);

x: = x div 10;

end;

writeln (a, b);

end.

 

Задание 3. В программе описан одномерный целочисленный массив A с индексами от 0 до 12. Ниже представлен фрагмент этой программы, в котором значения элементов массива сначала задаются, а затем меняются.

for i:=0 to 12 do

A[i]:=2 * i - 1;

for i:=1 to 12 do

A[i]:=A[i – 1];

· Чему будут равны элементы этого массива после выполнения фрагмента программы?

· Как изменятся элементы этого массива после выполнения фрагмента программы?

1) значение каждого элемента уменьшится на 1

2) все элементы, кроме последнего, будут сдвинуты на один элемент вправо

3) все элементы окажутся равны -1

4) всеэлементы, кроме первого, будут сдвинуты на один элемент влево.

 

Задание4. Дано действительное число a. Написать программу вычисления f(a), если


<== попередня лекція | наступна лекція ==>
Обробка файлів структурованих даних | ОДЕСЬКА НАЦІОНАЛЬНА АКАДЕМІЯ ЗВ’ЯЗКУ ІМ. О.С. ПОПОВА


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн