Перевести код с Pascal - C (СИ) (73839)
Формулировка задачи:
Листинг программы
- Program Zavdanya_3;
- Uses crt;
- Type masiv=array[1..10000]of Integer;
- Var F,f1:file of integer;
- y,R:byte;
- Procedure Stvorenna_file (var F:file of integer);
- var x:integer;
- i,n:integer;
- Begin rewrite (F);
- Write ('Створенно файл з розмірністтю: ');
- read (n);
- For i:=1 To n Do
- Begin x:=Random(100)-50;
- Write (f,x); End;
- Close (F);
- writeln;
- write('Файл створено!');
- End;
- Procedure Pereglad_file (var F:file of integer);
- var x:integer;
- Begin reset (F);
- Write ('Вміст файлу: ');
- While not eof(f) do
- begin read (f,x);
- write (x,' ');
- End;
- Writeln;
- Writeln;
- Write ('Файл прочитано повністю');
- close (F);
- End;
- Procedure Dopovnenna_file (var F:file of integer);
- Var x,a,i:integer;
- Begin reset (f);
- seek (f,filesize(f));
- write ('Введіть кількіть елементів на яку треба збільшити файл: ');
- Read (a);
- For i:=1 To a Do
- Begin x:=random(100)-50;
- write (F,x);
- End;
- close (f);
- end;
- Procedure Vulychenna_10 (var F:file of integer);
- Var Q:masiv; x:integer;
- a,b,c,i,v,p:integer;
- Begin
- i:=1; reset (f);
- While not eof(f) do
- begin Read (F,x);
- write(x,' ');
- If (x mod 7)=0 Then i:=i*x;
- End;
- writeln;
- if i=1 then writeln('Чисел кратних 7 немає')
- else
- writeln('Добуток: ',i);
- Close (F);
- End;
- Begin Assign (F,'Zavdanya_3.txt');
- Repeat
- Write('--------------------------------------------------------------------------------');
- Write (' Головне меню');
- Writeln;
- Writeln ('1 - Створення файлу');
- Writeln ('2 - Перегляд файлу');
- Writeln ('3 - Доповнення Файлу');
- Writeln ('4 - Вивести добудок чисел які кратні числу 7');
- Writeln ('0 - Закінчить програму');
- Write('--------------------------------------------------------------------------------');
- Write ('Введіть один із пунктів головного меню: ');
- Read (r);
- Case r of
- 1:Stvorenna_file (F);
- 2:Pereglad_file (F);
- 3:Dopovnenna_file (f);
- 4:Vulychenna_10 (F);
- 0:Writeln ('Кінець програми');
- End;
- Writeln;
- Until r=0;
- End.
помогите с переводом
Решение задачи: «Перевести код с Pascal»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- char *filename = "Zavdanya_3.txt";
- void create_file()
- {
- int x, i, n;
- FILE *F = fopen(filename, "w");
- printf("Create file of size: ");
- scanf("%i", &n);
- for(i = 0; i < n; ++i)
- {
- x = rand() % 100 - 50;
- fprintf(F, "%i ", x);
- }
- fclose(F);
- printf("\nFile has been created succesfully\n");
- }
- void reload_file()
- {
- int x;
- FILE *F = fopen(filename, "r");
- printf("\nFile contents are: ");
- while(fscanf(F, "%i", &x) != EOF)
- {
- printf("%i ", x);
- }
- printf("\n\nFile has been readed successfully\n");
- fclose(F);
- }
- void add_to_file()
- {
- int x,a,i;
- FILE *F = fopen(filename, "a");
- printf("\nEnter number of ints to add: ");
- scanf("%i", &a);
- for(i = 0; i < a; ++i)
- {
- x=rand() % 100 - 50;
- fprintf(F, "%i ", x);
- }
- fclose(F);
- }
- void product()
- {
- int x, i = 1, f = 0;
- FILE *F = fopen(filename, "r");
- printf("\n");
- while(fscanf(F, "%i", &x) != EOF)
- {
- printf("%i ", x);
- if(x % 7 == 0)
- {
- f = 1;
- i*=x;
- }
- }
- if(f==0)
- printf("\nNo one of ints can be divided by 7\n");
- else
- printf("\nProduct: %i\n", i);
- fclose(F);
- }
- int main()
- {
- int r;
- FILE *F = fopen("Zavdanya_3.txt", "r");
- do
- {
- printf("-------------------------------------------------------------------------------\n");
- printf(" Main menu\n");
- printf("1 - Create file\n");
- printf("2 - Show file contents\n");
- printf("3 - Add to file\n");
- printf("4 - Print product of ints which can be divided by 7\n");
- printf("0 - End the program\n");
- printf("-------------------------------------------------------------------------------\n");
- printf("Print one of the menu: ");
- scanf("%i", &r);
- switch(r)
- {
- case 1:
- create_file();
- break;
- case 2:
- reload_file();
- break;
- case 3:
- add_to_file();
- break;
- case 4:
- product();
- break;
- case 0:
- printf("End of program\n");
- break;
- default:
- break;
- }
- printf("\n");
- }
- while(r!=0);
- }
Объяснение кода листинга программы
- Объявлены переменные:
- filename (строка, содержащая имя файла)
- x (целое число, используется в функциях create_file, reload_file, add_to_file)
- i (целое число, используется в функциях create_file, reload_file, add_to_file)
- n (целое число, используется в функции create_file)
- a (целое число, используется в функции add_to_file)
- r (целое число, используется в функции main)
- F (указатель на файл, используется во всех функциях, работающих с файлом)
- Функция create_file создает файл указанного размера:
- Создается файл с помощью функции fopen.
- С помощью функции scanf считывается размер файла.
- С помощью цикла for и функции rand создаются случайные числа от -50 до 50 и записываются в файл с помощью функции fprintf.
- Функция fclose закрывает файл.
- Выводится сообщение об успешном создании файла.
- Функция reload_file считывает содержимое файла:
- Файл открывается с помощью функции fopen.
- С помощью цикла while и функции fscanf считываются числа из файла.
- Каждое число выводится на экран с помощью функции printf.
- Файл закрывается с помощью функции fclose.
- Выводится сообщение об успешном чтении файла.
- Функция add_to_file добавляет числа в файл:
- Файл открывается с помощью функции fopen.
- С помощью функции scanf считывается количество чисел для добавления.
- С помощью цикла for создаются случайные числа от -50 до 50 и записываются в файл с помощью функции fprintf.
- Файл закрывается с помощью функции fclose.
- Функция product вычисляет произведение чисел, которые делятся на 7:
- Файл открывается с помощью функции fopen.
- С помощью цикла while считываются числа из файла.
- Если число делится на 7, то увеличивается счетчик и сохраняется текущее значение произведения.
- После окончания чтения файла выводится сообщение о том, что ни одно из чисел не может быть разделено на 7, или выводится произведение.
- В функции main реализован главный меню программы:
- Файл открывается с помощью функции fopen.
- С помощью цикла do-while выполняется меню:
- Выводится меню.
- С помощью функции scanf считывается выбор пользователя.
- В зависимости от выбора выполняется соответствующая функция.
- После окончания выполнения программы выводится сообщение об ее завершении.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д